Factory Girl ist ein praktisches Framework in Rails zur einfachen Erstellung von Instanzen von Modellen für Tests.
Von der Factory Girl-Startseite :
factory_girl ermöglicht es Ihnen, schnell Prototypen für jedes Ihrer Modelle zu definieren und nach Instanzen mit Eigenschaften zu fragen, die für den jeweiligen Test wichtig sind.
Ein Beispiel (auch von der Homepage):
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
wenn ich einen Benutzer brauche, kann ich einfach aufrufen
test_user = Factory(:user, :admin => true)
was einen Benutzer mit allen im Prototyp der Fabrik angegebenen Eigenschaften ergibt, außer für die Admin-Eigenschaft, die ich explizit angegeben habe. Beachten Sie auch, dass die E-Mail-Fabrik-Methode jedes Mal, wenn sie aufgerufen wird, eine andere E-Mail liefern wird.
Ich denke, es sollte ziemlich einfach sein, etwas Ähnliches für Java zu implementieren, aber ich möchte das Rad nicht neu erfinden.
P.S.: Ich kenne sowohl JMock als auch EasyMoc, aber ich spreche hier nicht von einem Mocking Framework.