制作经过验证

时间:2013-11-06 23:59:35

标签: ruby-on-rails rspec tdd has-many-through fabrication-gem

我刚刚进入测试阶段,我有很多使用has_many关系的模型。在每种情况下,一个模型要求在保存时存在另一个模型。我遇到了我尝试的每个测试系统(FactoryGirl,Fixtures,现在的Fabrication),我无法弄清楚如何正确设置测试来复制这种行为。

followed this GIST as an example但是将after_build更改为before_save,因为模型当时需要“尽管”模型。我是以错误的方式接近这个吗?如何测试这种关系/功能?

I've created a GIST that is hopefully easier to use/read.

1 个答案:

答案 0 :(得分:3)

我改变了这个

Fabricator(:brand) do
  title "Coca Cola"

  before_save do |brand|
    styles Fabricate(:brand_style, :brand => brand, :style => Fabricate(:style))
  end
end

到这个

Fabricator(:brand) do
  title "Coca Cola"

  styles(count: 3) { Fabricate(:style) }
end

现在测试正在通过。但是,我不确定这是否是正确的设置方式,所以如果有人有任何额外的见解,将不胜感激。