Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
Unit testing each method in isolation from other methods or the environment is certainly a nice goal. How do you perform this task? You saw in chapter 7 that the stubbing technique lets you unit test portions of code by isolating them from the environment (such as by stubbing a web server, the filesystem, a database, and so on). What about fine-grained isolation, such as being able to isolate a method call to another class? Can you achieve this without deploying huge amounts of energy that would negate the benefits of having tests?
The answer is yes. The technique is called mock objects. Tim Mackinnon, Steve Freeman, and Philip Craig first presented the mock-objects concept at XP2000. The strategy allows you to unit test at the finest possible level. You develop method by method after having provided unit tests for each method.