1

我正在学习如何使用制造Rails我们决定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
4

1 回答 1

1

制造等价FactoryGirl.create(:payment)于是Fabricate(:payment)

它看起来像booking并且payable是其他制造商,所以你可以这样写:

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

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

在上述情况下user_ny,在制造时使用局部变量的最简单方法是将其作为参数传递。您可以在参数和块语法之间随意混合和匹配,尽管参数优先。

于 2016-03-17T12:47:29.213 回答