Factory Девушка - удобная структура в рельсах для легкого создания экземпляров моделей для тестирования.
Из Factory Домашняя страница девушки:
factory_girl позволяет быстро определять прототипы для каждой из ваших моделей и запрашивать экземпляры со свойствами, которые важны для теста под рукой.
Пример (также с домашней страницы):
Factory.sequence :email do |n|
"somebody#{n}@example.com"
end
# Let define a factory for the User model. The class name is guessed from the
# factory name.
Factory.define :user do |f|
# These properties are set statically, and are evaluated when the factory is
# defined.
f.first_name 'John'
f.last_name 'Doe'
f.admin false
# This property is set "lazily." The block will be called whenever an
# instance is generated, and the return value of the block is used as the
# value for the attribute.
f.email { Factory.next(:email) }
end
если мне нужен пользователь a, можно просто вызвать
test_user = Factory(:user, :admin => true)
который даст пользователю все свойства, указанные в прототипе Factory, за исключением свойства admin, которое я указал явно. Также обратите внимание, что метод электронной почты Factory будет выдавать другое письмо при каждом вызове.
Я думаю, что было бы довольно легко реализовать что-то подобное для Java, но я не хочу изобретать колесо.
P.S: Я знаю как JMock, так и EasyMoc, однако я не говорю о насмешливой структуре здесь.