Constructs a new MatchResult
with passed matches
, rawFailureMessage
, and
rawNegativeFailureMessage
fields.
Constructs a new MatchResult
with passed matches
, rawFailureMessage
, and
rawNegativeFailureMessage
fields. The rawMidSentenceFailureMessage
will return the same
string as rawFailureMessage
, and the rawMidSentenceNegatedFailureMessage
will return the
same string as rawNegatedFailureMessage
. failureMessageArgs
, negatedFailureMessageArgs
,
midSentenceFailureMessageArgs
, midSentenceNegatedFailureMessageArgs
will be Vector.empty
and Prettifier.default
will be used.
indicates whether or not the matcher matched
raw failure message to report if a match fails
raw message with a meaning opposite to that of the failure message
indicates whether or not the matcher matched
raw failure message to report if a match fails
raw message with a meaning opposite to that of the failure message
raw failure message suitable for appearing mid-sentence
raw negated failure message suitable for appearing mid-sentence
arguments for constructing failure message to report if a match fails
arguments for constructing message with a meaning opposite to that of the failure message
arguments for constructing failure message suitable for appearing mid-sentence
arguments for constructing negated failure message suitable for appearing mid-sentence
Construct failure message to report if a match fails, using rawFailureMessage
, failureMessageArgs
and prettifier
Construct failure message to report if a match fails, using rawFailureMessage
, failureMessageArgs
and prettifier
failure message to report if a match fails
arguments for constructing failure message to report if a match fails
indicates whether or not the matcher matched
Construct failure message suitable for appearing mid-sentence, using rawMidSentenceFailureMessage
, midSentenceFailureMessageArgs
and prettifier
Construct failure message suitable for appearing mid-sentence, using rawMidSentenceFailureMessage
, midSentenceFailureMessageArgs
and prettifier
failure message suitable for appearing mid-sentence
arguments for constructing failure message suitable for appearing mid-sentence
Construct negated failure message suitable for appearing mid-sentence, using rawMidSentenceNegatedFailureMessage
, midSentenceNegatedFailureMessageArgs
and prettifier
Construct negated failure message suitable for appearing mid-sentence, using rawMidSentenceNegatedFailureMessage
, midSentenceNegatedFailureMessageArgs
and prettifier
negated failure message suitable for appearing mid-sentence
arguments for constructing negated failure message suitable for appearing mid-sentence
Get a negated version of this MatchResult, matches field will be negated and all messages field will be substituted with its counter-part.
Get a negated version of this MatchResult, matches field will be negated and all messages field will be substituted with its counter-part.
a negated version of this MatchResult
Construct message with a meaning opposite to that of the failure message, using rawNegatedFailureMessage
, negatedFailureMessageArgs
and prettifier
Construct message with a meaning opposite to that of the failure message, using rawNegatedFailureMessage
, negatedFailureMessageArgs
and prettifier
message with a meaning opposite to that of the failure message
arguments for constructing message with a meaning opposite to that of the failure message
raw failure message to report if a match fails
raw failure message suitable for appearing mid-sentence
raw negated failure message suitable for appearing mid-sentence
raw message with a meaning opposite to that of the failure message
The result of a match operation, such as one performed by a
Matcher
orBeMatcher
, which contains one field that indicates whether the match succeeded, four fields that provide raw failure messages to report under different circumstances, four fields providing arguments used to construct the final failure messages using raw failure messages and aPrettifier
. Using the default constructor, failure messages will be constructed lazily (when required).A
MatchResult
'smatches
field indicates whether a match succeeded. If it succeeded,matches
will betrue
. There are four methods,failureMessage
,negatedfailureMessage
,midSentenceFailureMessage
andnegatedMidSentenceFailureMessage
that can be called to get final failure message strings, one of which will be presented to the user in case of a match failure. If a match succeeds, none of these strings will be used, because no failure message will be reported (i.e., because there was no failure to report). If a match fails (matches
isfalse
), thefailureMessage
(ormidSentenceFailure
—more on that below) will be reported to help the user understand what went wrong.Understanding
negatedFailureMessage
The
negatedFailureMessage
exists so that it can become thefailureMessage
if the matcher is inverted, which happens, for instance, if it is passed tonot
. Here's an example:The
Matcher[Int]
that results from passing 7 toequal
, which is assigned to theequalSeven
variable, will compareInt
s passed to itsapply
method with 7. If 7 is passed, theequalSeven
match will succeed. If anything other than 7 is passed, it will fail. By contrast, thenotEqualSeven
matcher, which results from passingequalSeven
tonot
, does just the opposite. If 7 is passed, thenotEqualSeven
match will fail. If anything other than 7 is passed, it will succeed.For example, if 8 is passed,
equalSeven
'sMatchResult
will contain:Although the
negatedFailureMessage
is nonsensical, it will not be reported to the user. Only thefailureMessage
, which does actually explain what caused the failure, will be reported by the user. If you pass 8 tonotEqualSeven
'sapply
method, by contrast, thefailureMessage
andnegatedFailureMessage
will be:Note that the messages are swapped from the
equalSeven
messages. This swapping was effectively performed by thenot
matcher, which in addition to swapping thefailureMessage
andnegatedFailureMessage
, also inverted thematches
value. Thus when you pass the same value to bothequalSeven
andnotEqualSeven
thematches
field of oneMatchResult
will betrue
and the otherfalse
. Because thematches
field of theMatchResult
returned bynotEqualSeven(8)
istrue
, the nonsensicalfailureMessage
, "8 equaled 7
", will not be reported to the user.If 7 is passed, by contrast, the
failureMessage
andnegatedFailureMessage
ofequalSeven
will be:In this case
equalSeven
'sfailureMessage
is nonsensical, but because the match succeeded, the nonsensical message will not be reported to the user. If you pass 7 tonotEqualSeven
'sapply
method, you'll get:Again the messages are swapped from the
equalSeven
messages, but this time, thefailureMessage
makes sense and explains what went wrong: thenotEqualSeven
match failed because the number passed did in fact equal 7. Since the match failed, this failure message, "7 equaled 7
", will be reported to the user.Understanding the "
midSentence
" messagesWhen a ScalaTest matcher expression that involves
and
oror
fails, the failure message that results is composed from the failure messages of the left and right matcher operatnds toand
or or. For example:This above expression would fail with the following failure message reported to the user:
This works fine, but what if the failure messages being combined begin with a capital letter, such as:
A combination of two such failure messages might result in an abomination of English punctuation, such as:
Because ScalaTest is an internationalized application, taking all of its strings from a property file enabling it to be localized, it isn't a good idea to force the first character to lower case. Besides, it might actually represent a String value which should stay upper case. The
midSentenceFailureMessage
exists for this situation. If the failure message is used at the beginning of the sentence,failureMessage
will be used. But if it appears mid-sentence, or at the end of the sentence,midSentenceFailureMessage
will be used. Given these failure message strings:The resulting failure of the
or
expression involving to matchers would make any English teacher proud:indicates whether or not the matcher matched
raw failure message to report if a match fails
raw message with a meaning opposite to that of the failure message
raw failure message suitable for appearing mid-sentence
raw negated failure message suitable for appearing mid-sentence
arguments for constructing failure message to report if a match fails
arguments for constructing message with a meaning opposite to that of the failure message
arguments for constructing failure message suitable for appearing mid-sentence
arguments for constructing negated failure message suitable for appearing mid-sentence