David, Thanks very much for the reply. I was aware I was dealing with a mock, but I thought in this instance it would fool event_types into thinking it was a genuine object to allow the association to be made and return EventType.
So what are my options? To add the data to the DB or to build the object the long way round @et = EventType.new(@avalid_attributes) @et.event_category = event_category ## mock @et.save! While I have your ears, is it necessary to replicate the behaviour in the model spec of how a controller builds an object? i.e use .build in the controller and use .new in the spec. I mean, to me, it doesn't matter as all I'm really concerned with is working with the object no matter how it's built. Great piece of software and book, by-the-way. Thanks very much for it. -ants On 4 December 2011 14:55, David Chelimsky <dchelim...@gmail.com> wrote: > > On Dec 4, 2011, at 7:48 AM, Ants Pants wrote: > > Hello everyone, > > I am trying to do the following .... > > before(:each) do > @valid_attributes = {:foo => 'bar'} > > @event_type = event_category.event_types.build(@valid_attributes) > $stderr.puts "**** #{@event_type.class} *****" > end > > let (:event_category) { mock_model(EventCategory).as_null_object } > > and the problem I'm having is that @event_type is coming back as > EventCategory and not EventType. > > Because of this problem, I thought, eh, I didn't know Rails did that! So > I checked use of .build in the real code and it does return EventType. > > I'm obviously doing something stupidly wrong in the test but I just can't > figure it out. > > Any pointers would be greatly appreciated, thank you. > > > event_category is a mock_model, not an EventCategory. Since it's declared > as_null_object, when it receives :event_types, it returns itself, and then > does the same for :build. So it's not really even an EventCategory: it's a > the same mock_model object, which is designed to lie about it's class in > order to be able to work with form builders. > > HTH, > David > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users