The 2 bits of unit testing I have a problem with are:
testing in isolation
Because this doesn't test the inter-component interactions,
Because the tests don't prove that the system works as a whole (which is what I'm mostly interested in)
Because when unit testing a component in isolation, I have to anticipate the environment that the component will be subject to. (and when that environment changes I have to remember to change the unit tests)
testing implementation
Because I can't refactor or change implementation without frequently breaking tests
Given these two problems, Why not use small (class-level?) functional tests instead?
(And if I'm not mistaken, aren't TestFirstDesign? tests functional tests anyway?) - PhilDawes
I not sure I understand what you mean by a small (class-level) functional test. I have always take the term 'functional test' to refer to an integrated system-level test. Unit tests are not a substitute for Functional tests. At ConneXtra we practise TestFirstDesign? at the (class) unit level. - RachelDavies