1

私はテストを始めたばかりで、has_many 関係を利用する多くのモデルがあります。いずれの場合も、保存時に一方のモデルがもう一方のモデルに存在している必要があります。私が試したすべてのテスト システム (FactoryGirl、Fixtures、そして現在は Fabrication) で壁にぶつかりました。そこでは、この動作を再現するためにテストを正しくセットアップする方法がわかりません。

例としてこの GISTに従いましたが、その時点でモデルが "through" モデルを必要としていたため、after_buildを に変更しました。before_save私はこれに間違った方法でアプローチしていますか? この関係/機能をどのようにテストしますか?

うまくいけば使いやすく読みやすいGISTを作成しました。

4

1 に答える 1

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

そして今、テストは合格です。ただし、これがこれを設定する正しい方法であるかどうかはわかりません。そのため、誰かが追加の洞察を持っていれば幸いです。

于 2013-11-07T16:21:05.577 に答える