问题
我希望能够执行以下测试,但它失败了,因为我为事件使用构建而不是创建;
event_parent = build(:event_parent)
event = build(:event, event_parent: event_parent)
event_parent.events.size.should == 1
我真的不想使用create,因为a)它比较慢,b)构建事件的工厂有一些关联和我真的不想担心在测试数据库中的事情。
我试过的
我(错误地)假设如果我在 event_parent 模型上创建了一个返回其事件的方法,那么它可能会在模型层而不是数据库层执行此操作。
我还将构建更改为为事件创建,这很有效,但正如我所说,对我的测试套件的其余部分有一些不良副作用。
相关代码
事件父模型
class EventParent < ActiveRecord::Base
has_many :events
end
事件模型
class Event < ActiveRecord::Base
belongs_to :event_parent
end