Fernando Perez wrote:

6 months since my initial post, what happened in between?

- My controllers are getting anorexic, and that's good. An action typically does only 1 call to a model and behind the scenes that model will make other calls to other models and do some fancy stuff, this used to happen in the controller which was bad. Now it has become so easy to write model specs.

By "getting", do you mean new controllers arrive skinny? Or that you have refactored the same fat controllers, over time, until they are skinny?

The latter is preferred, because we should not be writing the same sites over and over again. In theory!

- I don't spec controllers, because it's too painful to do. I don't spec views either, because I tweak them too often, and it would take me more time rewriting view specs then actually coding the views. If there is something to test for is the rendering of the css across browsers, because that's terrible!

We TDD, and refactor, the living shit out of controllers and views. Tools like assert_xhtml and form_test_helper make TDDing them easier than creating them by code-and-fix.

- I use cucumber+webrat to test that some important public pages render without a 500 error. I don't care if the view has such div except if it is a critical one. What I mean is that I won't test, all the assignments that should be on the page, as some tutorials demonstrate. This is nearly impossible to maintain.

How often do you run your tests? Your editor should help you run them after every couple of edits. A lot of BDD is actually "cargo cult" "Test-Driven Development" (Google the terms independently to see what I mean).

Someone would get the benefits you describe doing just some of the TDD cycle, but if they left out other parts they might blame the views for the remaining irritations.

- I can refactor my code, immediately spot areas where my code got broken, and fix it. Before some parts of my app would be broken without having me knowing about it for a long time until some cool customers report a few bugs, but this was not an acceptable situation.

Right: Your car now has headlights, _and_ brakes. This means you can go faster.

- I don't use Autotest, it sucks too much power, and it is too much distracting. From time to time I run specs to check if things look good, and always before updating the code on the server.

But you should _want_ to test every few edits. More important, you should be able to correctly predict the result of each run.

--
  Phlip

_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to