The Assertions
class in JUnit 5 allows for passing an Supplier<String>
as a messageSupplier
, an object that provides the text of a message to report when the test fails.
For example, assertEquals
:
public static void assertEquals( char expected,
char actual,
Supplier<String> messageSupplier )
I am wondering what the practical use of such a supplier might be, specifically in the context of unit testing.
I can imagine perhaps localizing the strings, though that seems a bit strange to localize when the audience is the members of a development project.
➥ Are there any other practical uses of passing such a message supplier rather than hard-coding message string?
If I remember correctly, we - the JUnit 5 team - introduced the supplier variant for cases in which building the message string is costly, eg due to accessing a database. You’d only want to do this if necessary, ie in case of failure.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With