[rspec-users] How thorough do you test?
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
> 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
> 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
> 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
> make sense to ensure that the fields exist.
> I am still a noob, so if anyone can enlighten me I would appreciate
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