Packages

trait MatchResult[+T] extends ResultLike

Result of a Match.

A MatchResult contains several information about a match on an expectable:

- the expectable value, to allow the chaining of matches - a pair of messages ok message / ko message to allow the easy creation of the negation of a match

A MatchResult can be transformed to a simple Result object to be the body of an Example.

There are different kinds of MatchResults, some of them being only created to support English-like combination of Matchers:

1 must be equalTo(1) and not be equalTo(2)

In an Expectation like the one above, there is a left to right evaluation:

  1. be is a NeutralMatcher, returning a NeutralMatch doing nothing yet, just storing the expectable

2. equalTo(1) is a real Matcher which is applied to the NeutralMatch MatchResult thanks to an implicit definition in the BeHaveAnyMatchers trait. This yields a MatchSuccess result

3. not creates a NotMatcher and can be and-ed with the previous MatchSuccess to yield a AndMatch(MatchSuccess, NotMatch), with NotMatch being the result of applying the NotMatcher to the expectable. This AndMatch is evaluated to create a AndNotMatch(MatchSuccess, MatchSkip)

Basically this is like forming an evaluation structure which will be resolved when the next 'real' matcher will arrive

4. the AndNotMatch get nows it be method called with the equalTo Matcher. This results in equalTo being applied to the AndNotMatch, effectively doing: MatchSuccess and MatchSkip.apply(equalTo(2).not), which is MatchSuccess and expectable.applyMatcher(equalTo(2).not) which is MatchSuccess

See also

org.specs2.matcher.BeHaveMatchersSpec for examples

Linear Supertypes
ResultLike, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MatchResult
  2. ResultLike
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract val expectable: Expectable[T]

    the value being matched

  2. abstract def negate: MatchResult[T]

    returns

    the negation of this result

  3. abstract def setExpectable[S >: T](e: Expectable[S]): MatchResult[S]

    set a different expectable for this matcher

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def applyMatcher(m: Matcher[T]): MatchResult[T]

    alias for the apply method, to be used outside specs2

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def be[S >: T <: AnyRef](s: S): MatchResult[S]
  7. def be(m: Matcher[T]): MatchResult[T]

    apply the matcher

  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def evaluate[S >: T]: MatchResult[S]

    the value being matched

    the value being matched

    Attributes
    protected[specs2]
  12. def filterTrace(f: (List[StackTraceElement]) ⇒ List[StackTraceElement]): MatchResult[T]

    filter the trace of this result (if there is one)

  13. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  14. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  15. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  16. def have(m: Matcher[T]): MatchResult[T]

    apply the matcher

  17. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  18. def isSuccess: Boolean
  19. def message: String
  20. def mute: MatchResult[T]

    returns

    the MatchResult with no messages

  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. def orSkip: MatchResult[T]
  25. def orThrow: MatchResult[T]
  26. def setMessage(message: String): MatchResult[T]

    set a new failure message on this match result

  27. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  28. def toResult: Result
    Definition Classes
    MatchResult → ResultLike
  29. def toString(): String
    Definition Classes
    AnyRef → Any
  30. def updateMessage(f: (String) ⇒ String): MatchResult[T]

    update the failure message of this match result

  31. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  32. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  33. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from ResultLike

Inherited from AnyRef

Inherited from Any

Ungrouped