There are two different schools of TDD: the "London School of TDD" ("Mockists") with proponents like Steve Freeman, Nat Pryce, J.B. Rainsberger leverage a top-down approach and heavy use of interfaces to craft roles of neighbour objects. They drive their design "outside-in" starting with end-to-end acceptance tests and focus on the interaction between objects. Testing them in isolation is achieved by heavy use of mocking.
On the contrary the "Chicago School of TDD" ("Classicists" like Kent Beck, Uncle Bob, ...) try to avoid mocks if possible. They prefere "state based testing" and focus on assertions on the return values.
Blogpost "Mocks aren't Stubs", Martin Fowler: http://martinfowler.com/articles/mocksArentStubs.html
Paper "Mock Roles not objects", Freeman et al.: http://jmock.org/oopsla2004.pdf
Book "Growing Object Oriented Software guided by tests", Steve Freeman & Nat Pryce: http://www.growing-object-oriented-software.com/