I have read this book a few weeks ago and now I am getting started to really apply it in a project. In the field of TDD, this book is one of the best books I have ever read. The book is easy to ready, easy to understand and well-written.
The author divided the book in three parts:
The first one introduces the concepts/the topics: TDD and Acceptance TDD. It presents an overview of TDD, a nice tutorial that presents you TDD from the ground and even how to apply it to a working code (welcome to refactoring ). Nice introduction to ATDD. The part is well written and will make you understand very well the concepts.
The second one tries to demonstrate how we can apply TDD in working examples, in working situations so we may say that is entirely a part dedicated to the concrete world of development. Some key concepts here: fixtures, test doubles, web development (servlets, Spring, JSP, Velocity, Wickets), jdbc database, ORM tools like Hibernate, thread testing , concurrency testing, GUI testing (Swing), tools for GUI testing. I think the part is a little bit exhaustive, I was getting tired trying to understand all these examples, but anyway it's a nice reference for all of you that might be interested.
The last part deals with Agile programming /Extreme Programming and presents the concept of building an entire application in a test-first manner with Acceptance TDD. It presents an application build properly for such Acceptance TDD named Fit. I think that you have to read also some other books covering this topic in order to be fully documented. I think this part does not covering enough all the concepts behind "write the test first".
It's important to mention also the appendices: they present JUnit and Easy Mock, both are well known in the Java world (especially the first one).
I may say that I really love this book, I do not agree entirely with some concepts in the third part of the book but I think that except these points, even if I should read it 10 times I discover every time something new.
I was not familiar with TDD before and I don't use Java as my main programming language, but it was still easy to understand the idea behind TDD. Examples in the book are also easily transported to other programming languages.
As a result I started using TDD right away. And it was easy! Before I thought it's gonna be difficult and time consuming but I was wrong.
Book provides lots of glimpses to other design models or patterns which will be useful to every programmer.
Still not finished reading but promising. Good book for real developers. Provides interesting points on several topics. Next, it is up to you to further investigate, but you are headed in the appropiate direction.
On the other hand, I miss a chapter for testing generic JPA, instead of Hibernate.
Recommended if Java is used in most of your development.