Most Helpful Customer Reviews
|
|
3 of 3 people found the following review helpful:
5.0 out of 5 stars
Solid and practical, if occasionally quirky, 10 Dec 2003
This book starts by covering general techniques in unit testing, including when and why to do it, how to know if you are doing it right, and how it integrates with other development practices. This is good stuff, but mostly also covered in other books. The section on Mock Objects is especially well done though, illuminating an often misunderstood topic area.The latter half is where this book shines. It tackles some of the really tough areas and does it very well. Singletons, database persistence, asynchronous services, concurrent and distributed systems, web applications and graphical user interfaces; all these are often skipped over as "too hard to test". If you've ever found yourself thinking something like that, you need this book. This book is a translation from a German original. Although the translators have done a tremendous job with the technical content, sometimes a phrase or section title, especially in the initial introduction can seem very unusual. Don't be put off by the quirky language in the early chapters, the meat of the book is well worth reading and putting into practice. This book is a masterly example of how to convert programming theory into solid, practical advice.
|
|
|
2 of 2 people found the following review helpful:
4.0 out of 5 stars
Provides value beyond introductory books, 12 Mar 2006
By A Customer
If you feel that you want to go beyond introductory material on TDD, but don't want to get bogged down in specifics of 'recipe'-style unit testing books, this will provide value, while providing plenty of material to come back to as you extend your TDD attempts to more advanced areas.Unit Testing in Java covers similar ground to Dave Astels' Test Driven Development - A Practical Guide. The structures of the books are very similar. There's an introduction to Agile processes (most importantly, refactoring), an introducion to JUnit and Test Driven Development with a step-by-step tutorial, and then a discussion of mock objects. Advanced topics cover testing databases, threaded programs, RMI, EJB (but really only to say that it's virtually impossible to do it well), web pages (with HttpUnit) and servlets (with Cactus), and GUIs. Appendices cover extensions to JUnit and unit testing in other languages, although, unlike the Astels book, only Smalltalk and C++ are covered to any depth. Despite the similar scope, there are some interesting contrasts between this book and Astels. The Astels book is more hands-on tutorial, while this book offers a series of guidelines for specific areas. The chapter on mock objects is also superior to that of the Astels book. It also covers a wider range of applications, although one might consider both this and the Astels book to be more valuable for their introductory material, rather than any specific applications. Although many people suggest the Beck book on TDD, or the Pragmatic Programmer's introduction to JUnit, this, plus the copious tutorials that are avialble on the internet, make those introductory books unnecessary. If you had to choose one book, perhaps this one would just shade it over the Astels volume, mainly for the first half of the book, which gives concise advice, and also for the excellent treatment of mock objects. For persuading a newcomer of the merits of Test Driven Development, the Astels book may be more effective, or the long pair programming example in Robert C. Martin's Agile Software Development. An even better place to start is Jeff Langr's Agile Java. However, this makes sense as a good follow up to any of those books.
|
|
|
1 of 1 people found the following review helpful:
3.0 out of 5 stars
As good as it is, it is not enough... for me, 4 Jan 2004
This is my first book on Test Driven Design/Test First and similar methodologies. I confirm that the book is well written and tries to offer practical advice even for things (like GUI and EJBs) where most people agree that TDD is difficult to use.The big problem, for me, is that even if the author does his best, the result fails to "convince". Proponents of the TDD approach like to emphasize that the real benefit is in better design (and easier refactoring), not in actual testing. Unfortunately, this is something that it is very difficult to capture in a book, where examples are necessarily simplified, and you cannot appreciate the system-wide consequences of the approach. Perhaps it is just me: until I actually try my hand at TTD I cannot realize the real benefits, and just as when we started using Structured Programming first, and OO later, most of the examples, even if lucidly explained like in this case, always felt artificial. A good book nonetheless, especially becaus offers a lot of pointers to other texts and to frameworks and libraries to enhance your automated testing.
|
|
|
|