On May 26, 2008, at 3:52 PM, Mark Dodwell wrote:
I find myself doing this kind of thing a lot in Controller Specs:
@vacancy = mock_model(Vacancy)
@vacancy.stub!(:reference)
@vacancy.stub!(:title)
@vacancy.stub!(:created_at)
@vacancy.stub!(:updated_at)
@vacancy.stub!(:body)
@vacancy.stub!(:contract)
@vacancy.stub!(:location)
@vacancy.stub!(:salary)
@vacancy.stub!(:benefits)
@vacancy.stub!(:start_date)
@vacancy.stub!(:duration)
I have to stub each of these methods so that the form renders
correctly
(as I am using integrate_views). This just feels *way* too much code
and
effort to do this. I have a spec for one controller (which just does
plain old CRUD) that is over 300 LOC -- this seems a bit nuts to me
when
the controller is only 50 LOC.
Does anybody have any suggestions on how to avoid this or perhaps I am
doing something wrong!?
I would highly suggest using :null_object => true in view specs (or
controller specs with integrate_views):
mock_model(MyARModel, :null_object => true, :to_s => "foobar")
stubbing :to_s is also important in view specs. If you don't stub
to_s, to_s will be called on the mock object, and you'll get invalid
XHTML (see this ticket: http://rspec.lighthouseapp.com/projects/5645/tickets/230-mock-null_object-true-doesn-t-play-nice-with-html)
Scott
_______________________________________________
rspec-users mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/rspec-users