About the Book
This book explains in detail how to implement unit tests using very popular open source Java technologies. It presents a range of techniques necessary to write high quality unit tests – e.g. mocks, parametrized tests and matchers. It also discusses trade-offs related to the choices we have to make when dealing with some real-life code issues.The book stresses the importance of writing readable and maintainable unit tests, and puts a lot of stress on code quality. It shows how to achieve testable code and to eliminate common mistakes by following the Test Driven Development approach. Every topic discussed in the book is illustrated with code examples, and each chapter is accompanied by some exercises. By reading this book you will:
- Grasp the role and purpose of unit tests
- Write high-quality, readable and maintainable unit tests
- Learn how to use JUnit 5, Mockito and AssertJ
- Avoid common pitfalls when writing unit tests
- Recognize bad unit tests, and fix them in no time
- Develop code following the Test Driven Development (TDD) approach
- Use mocks, stubs and test-spies intelligently
- Measure the quality of your tests using code coverage and mutation testing
- Learn how to improve your tests’ code so it is an asset and not a burden
- Test collections, expected exceptions, time-dependent methods and much more
- Customize test reports so that they show you what you really need to know
- Master tools and techniques your team members have never even heard of (priceless!) :)
Nowadays every developer is expected to write unit tests. While simple in theory, in practice writing high-quality unit tests can turn out to be a real challenge. This book will help.
About the Author
Tomek Kaczanowski is a technical team leader from Krakow, Poland. He has a strong interest in code quality, testing and automation - preferably all three together. Combining technical with soft skills, he also ventures into the realms of mentoring, teaching, lecturing and article writing, not to mention preaching sermons to the unconverted in the hope of redeeming them (or at least their code)! He hates doing things manually, and is allergic to empty src/test/java directories.
Tomek believes that by working with legacy code, and improving it, he can make the world a better place. To his disappointment, the world does not seem to care all that much about his efforts.
Apart from all this weirdness, he is a pretty normal person – a husband, father of three, and cat owner.