Topic: help me settle an argument?
I work for a successful, reasonably high-profile startup, and we are a 100% Rails shop.
We have one very, shall we say, opinionated manager who enforces his views on testing very aggressively. The rest of the rails engineers on the team are extremely suspicious, as his viewpoints have no precedent in any of our experience.
Simply put, he believes that one ought to use unit tests to cover each method on the models. Next, we are told to use functional tests to generate every possible permutation of requests, testing the database for whatever side-effects may occur. Integration tests are actively discouraged, except in the case of writing rack plugins and the like.
Generally, this amounts to a dizzying number of different requests being made in the functional tests, each followed by assertions such as "should_change the number of FOOs" and "should_change @foo.reload.bar." At times, extremely complicated model logic is executed and its results (as side-effects in the database) are tested, right there in the functional tests.
All of the other Rails engineers are balking at being asked to write tests in this way. I know most questions come down to convention (i.e. there is no central authority one can ask for the correct way to do things), but still I'd like to know:
Is that approach simply an alternative that I'm simply not familiar with? Or is it, as I suspect, a widely recognized anti-pattern.
Thanks for taking the time to read my post.
Last edited by overtakelessness (2010-07-11 11:55:32)