Lesson 3 - Java Testing - Hamcrest, JUnit TestRule and Best Practices
In the previous lesson, Java Testing - The first unit test in JUnit, we introduced the very basics of JUnit and wrote our first unit test. In today's lesson, we're going to complete unit tests by introducing the Hamcrest library, which is newly supported by JUnit, and fundamentally changes the way we write assertions. We'll also discuss rules (TestRules) and at the end we'll mention best practices for writing unit tests.
Since JUnit 4.4, there's the
assertThat() method available,
bringing a new way to do asserts using Matchers from the
Hamcrest library. By combining these matchers, we can create a complex
expression easily. You may not be surprised that matchers are classes (again)
with static methods, we can chain them and we're also able to write custom
matchers. Using this new method results in great readability.
Let's see what one simple assertion would look like in the original syntax:
assertEquals(2, calculator.add(1, 1));
and now in Hamcrest:
...End of the preview...
ict.social is a large database made up of manuals and tutorials, whose main goal is to provide high-quality IT education to everyone. We started out in the Czech republic, where we display roughly a million articles per month and receive plenty of gratitude from our users. Thanks to our successful establishment, we are now bringing these articles to the rest of the world.
Although we are trying to keep our content free of charge, maintaining the site is a huge effort for everyone involved. Therefore, some content (exercises and more advanced material) costs network points. Don't worry, they're really cheap :)
Requested article covers this content:
In this tutorial, we'll rewrite the previous unit test to the more modern syntax of the Hamcrest library, introduce TestRule API and best practices.
Buying this article gives you unlimited access to it forever. You will learn some more and help us keep giving our site maintenance which helps you and others get better futures. It's a win-win.
You gain points by supporting our network. This is done by sending a helpful amount of money to support the site, or by creating content for the network.
You can get points immediately using:
|Credit card||SMS||Wire transfer|