Summary
In the last chapter, we concluded the example application by refining the timeline's class design. You learned about important test-related architectural aspects of modularization and reusable test helper classes. Furthermore, you got to know that continuous integration supplements the test first approach very well by automatically running tests after each check-in of changes to the VCS. Applying these insights, you experienced what it takes to set up a CI build for the book's sample. Last but not least, you deepened your knowledge on code coverage and incorporated a reporting tool into your CI system.
Arriving at the end of this book, you gained a good perception of the conceptual requirements, a wide-ranging arsenal of solution approaches, and the premises to master the daily-work challenges of testing with JUnit. But remember that skill comes with practice and life's not easy at the bottom; in particular, when starting within a legacy system at hand, which lacks any tests until...