Factory Girl ожидает, что вы используете ассоциации и последовательности, а не жестко закодированные идентификаторы.Следующие примеры дают вам суть того, что нужно искать в rdoc, и основы использования фабрик.Вы, вероятно, должны держаться подальше от любых жестко закодированных идентификаторов, потому что это приведет к хрупким тестам, которые не сработают по случайному случаю (который займет у вас полдня, чтобы добраться до сути).
#the basics
Factory.define(:post) do |f|
f.association :author
end
Factory.define(:comment) do |f|
f.text "boo"
end
# callbacks
Factory.define :article_with_comment, :parent => :article do |article|
article.after_create { |a| Factory(:comment, :article => a) }
end
p = Factory(:article_with_comment)
p.comments.first.text # => "boo"
p.author #=> yep, used the association to make it
#sequences
Factory.define(:author) do |f|
f.email { Factory.next(:email) }
end
# and override the default behavior
p = Factory(:post, :title => 'new post', :author => Factory(:author, :email => "me@me.com") )
p.author.email # => me@me.com
...deep inside a test
p = Post.find_by_title('new post') # => this is the most basic way to get around id's
Еще немного приятной информации здесь: http://robots.thoughtbot.com/post/254496652/aint-no-calla-back-girl