What is a unit in TDD - a unit of work. A use-case in the system.
3 options for a unit of work:
- Return Value / Exception
- Noticable State Change (adding a user for example)
- 3rd Party Call (only place to use mock objects?)
More than just testing the implementation of the code that you're writing, or