Growing Object-Oriented Software, Guided by Tests by Addison-Wesley - it is about mocking frameworks - JMock and Hamcrest in particular.
From description of the book:
Steve Freeman and Nat Pryce describe
the processes they use, the design
principles they strive to achieve, and
some of the tools that help them get
the job done. Through an extended
worked example, you’ll learn how TDD
works at multiple levels, using tests
to drive the features and the
object-oriented structure of the code,
and using Mock Objects to discover and
then describe relationships between
objects. Along the way, the book
systematically addresses challenges
that development teams encounter with
TDD--from integrating TDD into your
processes to testing your most
difficult features.
EDIT:
I'm now reading Working Effectively with Legacy Code by Michael Feathers which is pretty good. From the description of the book:
- Understanding the mechanics of software change: adding features,
fixing bugs, improving design, optimizing performance
- Getting legacy code into a test harness
- Writing tests that protect you against introducing new problems
- This book also includes a catalog of twenty-four dependency-breaking
techniques that help you work with
program elements in isolation and make
safer changes.
I read it already, it is one of the best programming books I've ever read (I personally think that it must be called Refactoring to Testability - it describes the processes for making your code testable). Because a testable code is good code.