Factory Girl — это удобный фреймворк на рельсах для простого создания экземпляров моделей для тестирования.
С главной страницы Factory Girl:
factory_girl позволяет быстро определить прототипы для каждой из ваших моделей и запросить экземпляры со свойствами, важными для текущего теста.
Пример (тоже с домашней страницы):
Factory.sequence :email do |n|
"somebody#{n}@example.com"
end
# Let's 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
если мне нужен пользователь, я могу просто позвонить
test_user = Factory(:user, :admin => true)
что даст пользователю все свойства, указанные в прототипе фабрики, кроме свойства администратора, которое я указал явно. Также обратите внимание, что метод фабрики электронной почты будет выдавать разные электронные письма каждый раз, когда он вызывается.
Я думаю, что должно быть довольно легко реализовать что-то подобное для Java, но я не хочу изобретать велосипед.
P.S: я знаю и JMock, и EasyMoc, однако я не говорю здесь о мок-фреймворке.