Description
About JUnit 5 documentation in the 2.5. Assertions section, exists the following @Test
method
@Test
void standardAssertions() {
assertEquals(2, calculator.add(1, 1));
assertEquals(4, calculator.multiply(2, 2),
"The optional failure message is now the last parameter");
assertTrue('a' < 'b', () -> "Assertion messages can be lazily evaluated -- "
+ "to avoid constructing complex messages unnecessarily.");
}
Is not clear what is the advantage to use () -> "Assertion messages can be lazily evaluated -- ..."
and not simply "Assertion messages can be lazily evaluated -- ..."
It means: () -> ""
vs ""
Therefore:
assertTrue('a' < 'b', () -> "Assertion messages can be lazily evaluated -- "
+ "to avoid constructing complex messages unnecessarily.");
assertTrue('a' < 'b', "Assertion messages can be lazily evaluated -- "
+ "to avoid constructing complex messages unnecessarily.");
What does Assertion messages can be lazily evaluated mean? The explanation would be valuable for a better understanding and to know explicitly when use mandatorily an approach over the other. Currently in the complete/full documentation only appears through a sample code the () -> "something"
approach just twice, but not more. Some example(s) is/are appreciate showing the two approaches together and to understand clearly the difference of use of one over the other. Therefore I want to know when would be mandatory use the lambda approach. So far, the current official documentation does not cover this explicitly
I already wrote a question on SO about this question at:
The answer has sense, but if it can be covered and expanded from the official source documentation would be nice for the community
Thanks for your understanding