Introduction
In this chapter, you will learn how to use both Hamcrest matchers (https://github.com/hamcrest/JavaHamcrest) and AssertJ assertions (http://joel-costigliola.github.io/assertj/assertj-core.html) in order to properly check the output of your system under test. Now, let's take a quick look at both of the libraries and check their pros and cons.
Hamcrest is a library that is incorporated inside one of the most frequently used testing libraries: JUnit. More importantly, it is used by plenty of other libraries and thus, makes it easy to re-use your current custom assertions in various tools. It allows you to construct domain-specific language (DSL) like statements to combine assertions and make your tests such that they can be read nicely and intuitively. They become a living documentation of your code and become much easier to maintain. As for the disadvantages, unfortunately, the latest version of Hamcrest is 1.3 (April 2014) and the latest release took place in 2012. The Hamcrest...