[rspec-users] How thorough do you test?

Scott Taylor mailing_lists at railsnewbie.com
Wed Nov 21 14:02:42 EST 2007

On Nov 21, 2007, at 1:22 PM, Chris Olsen wrote:

> Testing models is great and would not be able to create anything  
> without
> it, but I am finding testing the controllers and views is a pain.
> Rest based controllers don't seem to change that much when compared to
> the auto-generated code that obviously works.
> As for views I fail to see why testing it with a mock model does
> anything.  Nothing is ensuring that when changes are made to the model
> that they will also be done to the mocks then causing the test to  
> break.
> If anything, having the false security when all tests pass is  
> worse, in
> that it may prevent you from double checking something crucial.
> I think tests for views makes sense when there is a condition that  
> must
> be tested, ex. if a new member must fill in additional fields that are
> made visible only when they are from a certain country.  A test may  
> then
> make sense to ensure that the fields exist.
> I am still a noob, so if anyone can enlighten me I would appreciate  
> it.

Personally, I find view specs to be very brittle.  I avoid them like  
the plague.   Occasionally, I'll integrate_views, but only for a  
regression, and in that case I'll usually use real model objects.

As for controller specs - your experiencing the problems that all do  
with mocking/stubbing.  I'm sure better tools are out there, on the  
way, which will tell you when a stub goes out of date  (maybe you've  
changed the name of the method, and so on).  For now, though, such  
things don't exist.

For the most part, I think the reason people are using mocks in  
testing a rails projects is their speed.  Speed is not some secondary  
factor - if your test run slow, you won't run them very often.  I've  
already experienced this on current project, where I much more apt to  
run the whole suite of controller specs (which exclusively use mocks)  
than the whole suite of model specs (which takes around 200 seconds).


More information about the rspec-users mailing list