final case class LazyArg(arg: Any)(f: (Any) ⇒ String) extends Product with Serializable
Transforms a given object's toString
with a given function lazily.
This class is intended to be used with the mapResult
method of
MatcherProducers
, which you can use to
modify error messages when composing matchers. This class exists to enable those error messages
to be modified lazily, so that toString
is invoked on the given
arg
, and its result transformed by the given function f
, only when and if
the toString
method is invoked on the LazyArg
. As a performance optimization, ScalaTest's
MatchResult
avoids invoking toString
on objects
until and unless an error message is actually needed, to minimize unecessary creation and concatenation
of strings. The LazyArg
class enables this same performance optimization when composing
matchers.
The other design goal of LazyArg
is to make the internal arg
available for inspection
in an IDE. In a future version of ScalaTest, the args
of MatchResult
that were used
to create the error message will be included in the TestFailedException
, so they can be inspected
in IDEs. This is why the arg
field of LazyArg
is public.
For an example of using LazyArg
, see the Composing matchers
section in the main documentation for trait Matcher
.
- arg
the argument
- f
a function that given the
arg
will produce aString
- Source
- LazyArg.scala
- Alphabetic
- By Inheritance
- LazyArg
- Serializable
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
LazyArg(arg: Any)(f: (Any) ⇒ String)
- arg
the argument
- f
a function that given the
arg
will produce aString
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val arg: Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
Returns the result of invoking the function
f
, passed to theLazyArg
constructor, on fieldarg
.Returns the result of invoking the function
f
, passed to theLazyArg
constructor, on fieldarg
.- Definition Classes
- LazyArg → AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )