Master high quality software development driven by unit tests
About This Book
Design and implement robust system components by means of the de facto unit testing standard in Java
Reduce defect rate and maintenance effort, plus simultaneously increase code quality and development pace
Follow a step-by-step tutorial imparting the essential techniques based on real-world scenarios and code walkthroughs
Who This Book Is For
No matter what your specific background as a Java developer, whether you're simply interested in building up
a safety net to reduce regressions of your desktop application or in improving your server-side reliability based on robust and reusable components, unit testing is the way to go. This book provides you with a comprehensive but concise entrance advancing your knowledge step-wise to a professional level.
What You Will Learn
Organize your test infrastructure and resources reasonably
Understand and write well structured tests
Decompose your requirements into small and independently testable units
Increase your testing efficiency with on-the-fly generated stand-in components and deal with the particularities of exceptional flow
Employ runners to adjust to specific test demands
Use rules to increase testing safety and reduce boilerplate
Use third party supplements to improve the expressiveness of your verification statements
JUnit has matured to become the most important tool when it comes to automated developer tests in Java. Supported by all IDEs and build systems, it empowers programmers to deliver software features reliably and efficiently. However, writing good unit tests is a skill that needs to be learned; otherwise it's all too easy to end up in gridlocked development due to messed up production and testing code. Acquiring the best practices for unit testing will help you to prevent such problems and lead your projects to success with respect to quality and costs.
This book explains JUnit concepts and best practices applied to the test first approach, a foundation for high quality Java components delivered in time and budget.
From the beginning you'll be guided continuously through a practically relevant example and pick up background knowledge and development techniques step by step. Starting with the basics of tests organization you'll soon comprehend the necessity of well structured tests and delve into the relationship of requirement decomposition and the many-faceted world of test double usage. In conjunction with third-party tools you'll be trained in writing your tests efficiently, adapt your test case environment to particular demands and increase the expressiveness of your verification statements. Finally, you'll experience continuous integration as the perfect complement to support short feedback cycles and quality related reports for your whole team.
The tutorial gives a profound entry point in the essentials of unit testing with JUnit and prepares you for test-related daily work challenges.
Style and approach
This is an intelligible tutorial based on an ongoing and non-trivial development example. Profound introductions of concepts and techniques are provided stepwise as the programming challenges evolve. This allows you to reproduce and practice the individual skills thoroughly.
Table of Contents
Chapter 1: Getting Started
Chapter 2: Writing Well-structured Tests
Chapter 3: Developing Independently Testable Units
Chapter 4: Testing Exceptional Flow
Chapter 5: Using Runners for Particular Testing Purposes
Chapter 6: Reducing Boilerplate with JUnit Rules
Chapter 7: Improving Readability with Custom Assertions
Chapter 8: Running Tests Automatically within a CI Build