Class used via an implicit conversion that adds composeTwice, mapResult, and
mapArgs methods to functions that produce a Matcher.
Class used via an implicit conversion that adds composeTwice, mapResult, and
mapArgs methods to functions that produce a Matcher.
Implicit conversion that converts a function of T => Matcher[T] to an object that has
composeTwice, mapResult and mapArgs methods.
Implicit conversion that converts a function of T => Matcher[T] to an object that has
composeTwice, mapResult and mapArgs methods.
The following shows how this trait is used to compose twice and modify error messages:
import org.scalatest._
import matchers._
import MatcherProducers._
val f = be > (_: Int)
val g = (_: String).toInt
// f composeTwice g means: (f compose g) andThen (_ compose g)
val beAsIntsGreaterThan =
f composeTwice g mapResult { mr =>
mr.copy(
failureMessageArgs =
mr.failureMessageArgs.map((LazyArg(_) { "\"" + _.toString + "\".toInt"})),
negatedFailureMessageArgs =
mr.negatedFailureMessageArgs.map((LazyArg(_) { "\"" + _.toString + "\".toInt"})),
midSentenceFailureMessageArgs =
mr.midSentenceFailureMessageArgs.map((LazyArg(_) { "\"" + _.toString + "\".toInt"})),
midSentenceNegatedFailureMessageArgs =
mr.midSentenceNegatedFailureMessageArgs.map((LazyArg(_) { "\"" + _.toString + "\".toInt"}))
)
}
"7" should beAsIntsGreaterThan ("8")
The last assertion will fail with message like this:
"7".toInt was not greater than "8".toInt
the type used by function f
a function that takes a T and return a Matcher[T]
an object that has composeTwice, mapResult and mapArgs methods.
Provides an implicit conversion on functions that produce
Matchers, i.e.,T => Matcher[T]that enables you to modify error messages when composingMatchers.For an example of using
MatcherProducers, see the Composing matchers section in the main documentation for traitMatcher.