我正在学习如何在Rails
中使用fabrication,我们决定用制作替换所有factory_girl
代码。
假设我们在factory_girl
中有这段代码,我将如何使用fabrication
重写整个内容?
FactoryGirl.create(
:payment,
user: user_ny,
amount: -4000,
booking: booking,
payable: payable]
)
这是使用Fabrication的正确代码吗?我是rails框架的新手,非常感谢您的帮助。
Fabricator(:payment) do
name { user_ny }
amount -4000
booking { booking }
payable { payable }
end
答案 0 :(得分:1)
制作等同于FactoryGirl.create(:payment)
的{{1}}。
看起来Fabricate(:payment)
和booking
是其他制作者,所以你可以这样写:
payable
如果您声明的关系没有"值"它执行默认扩展并生成同名的制造者定义并在对象上设置的任何内容。
在上面Fabricate(:payment, name: user_ny) do
amount -4000
booking
payable
end
的情况下,在制作时使用局部变量的最简单方法是将其作为参数传递。您可以在参数和块语法之间混合和匹配,但参数优先。