Class that provides a withClue
method that appends clue strings to any
ModifiableMessage
exception
thrown by the passed by-name parameter.
Class that provides a withClue
method that appends clue strings to any
ModifiableMessage
exception
thrown by the passed by-name parameter.
Implicit conversion that allows clues to be place after a block of code.
Trait providing an implicit conversion that allows clues to be placed after a block of code.
You can use the
withClue
construct provided byAssertions
, which is extended by every style trait in ScalaTest, to add extra information to reports of failed or canceled tests. ThewithClue
fromAssertions
places the "clue string" at the front, both in the code and in the resulting message:The above expression will yield the failure message:
This is a prepended clue; 2 did not equal 3
If you mix in this trait, or import its members via its companion object, you can alternatively place the clue string at the end, like this:
The above expression will yield the failure message:
2 did not equal 3 now the clue comes after
If no space is already present, either at the beginning of the clue string or at the end of the current message, a space will be placed between the two, unless the clue string starts with one of the punctuation characters: comma (
,
), period (.
), or semicolon (;
). For example, the failure message in the above example includes an extra space inserted between 3 and now.By contrast this code, which has a clue string starting with comma:
Will yield a failure message with no extra inserted space:
2 did not equal 3, now the clue comes after
The
withClue
method will only append the clue string to the detail message of exception types that mix in theModifiableMessage
trait. See the documentation forModifiableMessage
for more information.Note: the reason this functionality is not provided by
Assertions
directly, like the prependedwithClue
construct, is because appended clues require an implicit conversion. ScalaTest only gives you one implicit conversion by default in any test class to minimize the potential for conflicts with other implicit conversions you may be using. All other implicit conversions, including the one provided by this trait, you must explicitly invite into your code through inheritance or an import.