如何使用rails中的制作来编写factory_girl create命令

时间:2016-03-16 20:03:45

标签: ruby-on-rails testing factory-bot fabrication-gem

我正在学习如何在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

1 个答案:

答案 0 :(得分:1)

制作等同于FactoryGirl.create(:payment)的{​​{1}}。

看起来Fabricate(:payment)booking是其他制作者,所以你可以这样写:

payable

如果您声明的关系没有"值"它执行默认扩展并生成同名的制造者定义并在对象上设置的任何内容。

在上面Fabricate(:payment, name: user_ny) do amount -4000 booking payable end 的情况下,在制作时使用局部变量的最简单方法是将其作为参数传递。您可以在参数和块语法之间混合和匹配,但参数优先。