Author/s : Petar Tahchiev, Felipe Leme, Vincent Massol, and Gary Gregory
Publisher : Manning Publications
Category : Miscellaneous Java Review by : Jeanne Boyarsky
Rating : 7 horseshoes
I truly enjoyed reading the first edition of "JUnit in Action" and was somewhat disappointed by the second edition. It wasn't even that the second edition was bad. It's that my expectations were too high from the first edition.
I think there were too many authors on the book. The different styles were apparent which is awkward in a book. The cover says the book covers JUnit 4.8 while the contents of the book are JUnit 4.6. (This one is probably marketing's fault, but it stands out extra on a book about quality.)
I also think the scope of the book was too large. Many things are covered, but not enough things are covered well. I expect a book titled "JUnit in Action" to cover the core of JUnit well. While most things were mentioned, there were only 3 pages on Hamcrest matchers. I felt other core concepts were breezed through and not enough space was spent on the fundamentals. The first edition had more pages on core JUnit and there was less to cover then!
I was also surprised not to see Mockito mentioned in the mock testing section or Emma in the coverage section. Not featured, mind you. Just mentioned. And finally, I found one factual error that I consider significant because it is a fallacy. I posted it in the Manning forum 8/3 and haven't received a reply. Nor have many people who posted since May or beyond. Why is there a forum if nobody reads it?
Many things were done well - examples, best practices, available tools. I just had the bar so high from the previous edition that I was let down.
If you already own the first edition or are familiar with what is out there, you don't need this book. If you've never done anything in JUnit, it is still useful. Just remember that the order unit tests are run is not guaranteed!
Disclosure: I received a copy of this book from the publisher in exchange for writing this review on behalf of JavaRanch.