如何使用 rails 中的构造编写 factory_girl 创建命令

How to write factory_girl create command using fabrication in rails

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

伪造等同于 FactoryGirl.create(:payment)Fabricate(:payment)

看起来 bookingpayable 是其他制造商,所以你可以这样写:

Fabricate(:payment, name: user_ny) do
  amount -4000
  booking
  payable
end

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

在上面user_ny的情况下,在制作时使用局部变量最简单的方法是将其作为参数传入。您可以根据需要在参数和块语法之间混合和匹配,但参数优先。