です。私が持っている問題は、belongs_toとhas_manyとの関係に固有です。has_manyの関係には少なくとも1つのアソシエーションが必要です。この要件は、私の工場がモデルレベルの検証に失敗し、作成されない原因となっています。belongs_to/has_manyアソシエーションを持つFactoryGirlアソシエーションの最小値は
マイグループモデル
Group < ActiveRecord::Base
has_many :organizations, dependent: nullify
# commenting out the following line will make the tests pass
validates :organizations, presence: true
...
end
組織モデル
Organization < ActiveRecord::Base
belongs_to :group
...
end
組織工場
FactoryGirl.define do
factory :organization
name "test organization"
end
end
そして最後に、問題の子:
グループ工場と私のテストでは、私は工場出荷時のインスタンスを宣言:
describe "something happens with a Group" do
let(:group) { FactoryGirl.create :group }
it "should work" do
...
end
end
私のテストが返すエラーは様々であるが、FactoryGirlに、一般的に、すべてのポイントは、Group
工場のインスタンスを作成することができません。例えばこのThoughtbotポストから
# when a test relies on creating an instance of 'Group'
ActiveRecord::RecordInvalid:
Validation failed: Organizations can't be blank
私は私のグループの工場を作成するには(コールバック)を使用している方法があるhttps://robots.thoughtbot.com/aint-no-calla-back-girl
多くの類似の記事がありますが、私はだけでなく、発見したことを、それらのすべてThoughtbotのドキュメントには、この特定のユースケースは言及されていません。前もって感謝します。
Ahh!それはうまくいった!うわー、私はこのテーマのバリエーションをたくさん疲れましたが、私の構文は間違っていました。素晴らしい、ありがとう! – sammms