問題
次のテストを実行できるようにしたいのですが、作成ではなくビルドをイベントに使用しているため失敗します。
event_parent = build(:event_parent)
event = build(:event, event_parent: event_parent)
event_parent.events.size.should == 1
私は本当に create を使いたくありません。なぜなら、a) 遅いし、b) イベントを構築するファクトリにはいくつかの関連付けと、テスト データベースに存在することを本当に心配する必要がないものがあるからです。
私が試したこと
イベントを返す event_parent モデルでメソッドを作成した場合、データベース層ではなくモデル層でこれを行う可能性があると (誤って) 想定しました。
また、ビルドをイベントの作成に変更しましたが、これは機能しますが、テストスイートの残りの部分に望ましくない副作用がいくつかあります.
関連コード
EventParent モデル
class EventParent < ActiveRecord::Base
has_many :events
end
イベントモデル
class Event < ActiveRecord::Base
belongs_to :event_parent
end