Tests should read like prose
Expressing solutions to problems is at the heart of programming. Cognitive load slows you down. Not using natural language adds to the cognitive load. Writing software benefits from using natural language. This is something I think of very often in my work.
When using JUnit I use the Junit4 API assertThat
whenever possible.
This enables me to write
assertThat(result, is(expected))
Compare this to Junit3
assertEquals(expected, result)
Junit5 is in development.
It surprised me to see that they are using what I perceived as “Junit3 syntax”.
In the
user guide
we find the explanation.
The assertThat
API is reserved for third party assertion libraries like hamcrest or assertj.
The more powerful API is open to extension and pluggable.
An excellent choice.