- Test-Driven Java Development(Second Edition)
- Alex Garcia Viktor Farcic
- 149字
- 2021-06-24 18:31:48
AssertJ
AssertJ works in a similar way to Hamcrest. A major difference is that AssertJ assertions can be concatenated.
To work with AssertJ, the dependency must be added to Gradle's dependencies:
testCompile 'org.assertj:assertj-core:2.0.0'
Let's compare JUnit asserts with AssertJ:
Assert.assertEquals(5, friendships.getFriendsList("Joe").size()); List<String> friendsOfJoe =
Arrays.asList("Audrey", "Peter", "Michael", "Britney", "Paul");
Assert.assertTrue( friendships.getFriendsList("Joe")
.containsAll (friendsOfJoe) );
The same two asserts can be concatenated to a single one in AssertJ:
assertThat(friendships.getFriendsList("Joe")) .hasSize(5) .containsOnly("Audrey", "Peter", "Michael", "Britney", "Paul");
This was a nice improvement. There was no need to have two separate asserts, nor was there a need to create a new list with expected values. Moreover, AssertJ is more readable and easier to understand.
The complete source code can be found in the FriendshipsAssertJTest class at https://bitbucket.org/vfarcic/tdd-java-ch02-example-junit.
Now that we have the tests up and running, we might want to see what the code coverage is that is generated by our tests.