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.
Companion object that facilitates the importing of
MatcherProducers
members as an alternative to mixing it in. One use case is to importMatcherProducers
's members so you can useMatcherProducers
in the Scala interpreter.