testing - How do I test a relationship in Rails using Factory Girl that doesn't hit the database? -
the problem
i want able perform following test, fails because using build event instead of create;
event_parent = build(:event_parent) event = build(:event, event_parent: event_parent) event_parent.events.size.should == 1
i don't want use create because a) slower , b) factory build events has associations , things don't want have worry being in test database.
what have tried
i (wrongly) assumed if created method on event_parent model returned events might @ model layer , not database layer.
i have changed build create event , works, has undesirable side effects rest of test suite.
related code
eventparent model
class eventparent < activerecord::base has_many :events end
event model
class event < activerecord::base belongs_to :event_parent end
if want spec relationships using activerecord, @ shoulda-matchers gem
describe event let(instance) { event.new } { expect(instance).to belong_to(:event_parent) } end describe eventparent let(instance) { eventparent.new } { expect(instance).to have_many(:events) } end
Comments
Post a Comment