fre*_*ull 13 ruby unit-testing ruby-on-rails factory-bot
我有这些模型,我正在尝试使用factory_girl创建工厂.
class Foo < ActiveRecord::Base
belongs_to :baz
end
class Baz < ActiveRecord::Base
has_many :foos
end
Run Code Online (Sandbox Code Playgroud)
我不知道如何创建工厂而不创建一个工厂无休止地互相呼叫的循环.
Factory.define :foo do |f|
f.after_create do |ff|
ff.baz = Factory(:baz)
end
end
Factory.define :baz do |f|
f.after_create do |ff|
ff.foos = [Factory.create(:foo)]
end
end
Run Code Online (Sandbox Code Playgroud)
我意识到我可以ff.foos = [Factory.create(:foo)]在baz工厂里闲逛,但在我的baz测试中,我被迫使用foo.baz而不是仅仅使用baz.我是否被迫在测试中将baz其从foo工厂中取出来使用该对象?或者,还有更好的方法?
请参阅" 入门指南"的" 关联"部分
因此,您需要使用该部分的语法,即.在您的Foo声明中,您需要:
Factory.define :foo do |f|
f.association :baz
end
Run Code Online (Sandbox Code Playgroud)
没有after_create必要的belongs_to关联.
| 归档时间: |
|
| 查看次数: |
11224 次 |
| 最近记录: |