org.specs2.matcher

Type members

Classlikes

trait AdaptableMatcher[T] extends Matcher[T]

Inherit this trait to provide a Matcher where both the actual and the expected values can be adapted with a function.

Inherit this trait to provide a Matcher where both the actual and the expected values can be adapted with a function.

case class AlwaysMatcher[T]() extends Matcher[T]

This matcher always matches any value of type T

This matcher always matches any value of type T

class AndMatch[T] extends MatchResult[T]
class AndNotMatch[T] extends MatchResult[T]

This trait allows to write expressions like

This trait allows to write expressions like

1 must be equalTo(1)

This trait provides matchers which are applicable to any type of value

This trait provides matchers which are applicable to any type of value

Companion:
object
object AnyMatchers extends AnyMatchers
Companion:
class
class BeCloseTo[T](n: T, delta: T)(implicit evidence$2: Numeric[T]) extends Matcher[T]
class BeEqualTo(t: => Any) extends EqualityMatcher[Any]

Equality Matcher

Equality Matcher

case class BeEqualTypedValueCheck[T](expected: T)(implicit evidence$1: Diffable[T]) extends ValueCheck[T]

ValueCheck for a typed expected value. It uses the BeTypedEqualTo matcher

ValueCheck for a typed expected value. It uses the BeTypedEqualTo matcher

case class BeEqualValueCheck[T](expected: Any) extends ValueCheck[T]

ValueCheck for an untyped expected value. It uses the BeEqualTo matcher

ValueCheck for an untyped expected value. It uses the BeEqualTo matcher

class BeLessThan[T](n: T)(implicit convert: T => Ordered[T]) extends Matcher[T]
class BeLessThanOrEqualTo[T](n: T)(implicit convert: T => Ordered[T]) extends Matcher[T]
object BeMatching
class BeMatchingRegex(r: Regex)
class BeNull[T] extends Matcher[T]
case class BeOneOf[T](t: Seq[T]) extends Matcher[T]
class BeSignificantlyCloseTo[T](target: T, sf: SignificantFigures)(implicit evidence$3: Numeric[T]) extends Matcher[T]
class BeTheSameAs[T <: AnyRef](t: => T) extends Matcher[T]
class BeTrueMatcher extends Matcher[Boolean]

Matcher for a boolean value which must be true

Matcher for a boolean value which must be true

class BeTypedEqualTo[T](t: => T) extends EqualityMatcher[T]

Typed equality Matcher with fallback comparison results

Typed equality Matcher with fallback comparison results

case class BetweenMatcher[T](t1: T, t2: T, includeStart: Boolean, includeEnd: Boolean)(implicit convert: T => Ordered[T]) extends Matcher[T]
case class CanHaveDelta[S](n: S)(implicit evidence$1: Numeric[S])

transient class allowing the creation of a delta

transient class allowing the creation of a delta

case class ContainWithResult[T](check: ValueCheck[T], timesMin: Option[Times], timesMax: Option[Times], checkAll: Boolean) extends Matcher[Iterable[T]]
case class ContainWithResultSeq[T](checks: Seq[ValueCheck[T]], containsAtLeast: Boolean, containsAtMost: Boolean, eachCheck: Boolean, checkOrder: Boolean, negate: Boolean) extends Matcher[Iterable[T]]
case class DataTable(titles: Seq[String], rows: Seq[DataTableRow])
Companion:
object
object DataTable
Companion:
class
case class DataTableRow(cells: Seq[String], result: Result)
Companion:
object
Companion:
class

This trait provides implicit definitions and types to create DataTables.

This trait provides implicit definitions and types to create DataTables.

A DataTable has a header defining column names and rows holding values. It is possible to apply a function taking the row values and returning a MatchResult.

A TableHeader is defined by separating the column names with '|': "a" | "b" | "c"

A DataRow is defined by separating the row values with '!': 1 ! 2 ! 3

Note that the '!' method can conflict with the creation of Examples when the value is a string. In that case it is possible to use the '!!! method to disambiguate:

"1" !! "2" ! "3"

In that case the first column of the header can also be defined with '||' for pure symmetry reasons:

"a" || "b" | "c" "1" !! "2" ! "3"

See also:

org.specs2.matcher.DataTablesSpec for examples

Matchers for the Either datatype

Matchers for the Either datatype

Companion:
object
Companion:
class
class EqualityMatcher[T](t: => T)(implicit evidence$1: Diffable[T]) extends AdaptableMatcher[T]
trait EventuallyMatchers extends EventuallyResults

This trait adds the possibility to retry a given matcher until it succeeds.

This trait adds the possibility to retry a given matcher until it succeeds.

This was contributed by @robey (http://robey.lag.net)

Companion:
object

These matchers can be used to check if exceptions are thrown or not

These matchers can be used to check if exceptions are thrown or not

Companion:
object
Companion:
class
class Expectable[+T]

The Expectable class models anything which can be checked by applying a Matcher

The Expectable class models anything which can be checked by applying a Matcher

It stores a value which is only evaluated when necessary and an optional additional description for that value.

The Expectable object is responsible for creating its own description, based on the value toString method and and an additional description.

Companion:
object
object Expectable

Factory methods for creating Expectables

Factory methods for creating Expectables

Companion:
class

This trait provides implicit definitions to transform any value into an Expectable

This trait provides implicit definitions to transform any value into an Expectable

Companion:
object
object Expectations extends Expectations
Companion:
class

Base trait to create expectations

Base trait to create expectations

case class LeftCheckedMatcher[T](check: ValueCheck[T]) extends OptionLikeCheckedMatcher[Either, T, T]
case class LeftMatcher[T]() extends OptionLikeMatcher[Either, T, T]

Matchers for Maps

Matchers for Maps

Companion:
object
object MapMatchers extends MapMatchers
Companion:
class
case class MatchFailure[T] extends MatchResult[T]
Companion:
object
Companion:
class
class MatchFailureException[T](val failure: MatchFailure[T]) extends FailureException with MatchResultException[T]

this class allows to throw a match failure result in an Exception

this class allows to throw a match failure result in an Exception

Companion:
object
case class MatchPending[T] extends MatchResult[T]
class MatchPendingException[T](val p: MatchPending[T]) extends PendingException with MatchResultException[T]

this class allows to throw a pending result in an Exception

this class allows to throw a pending result in an Exception

Companion:
object
sealed trait MatchResult[+T] extends ResultLike

Result of a Match.

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

Companion:
object

Utility functions for MatchResult.

Utility functions for MatchResult.

A MatchResult is a Functor where the fmap function acts on the embedded Expectable value (which itself is a Functor)

Companion:
class
trait MatchResultCombinators extends MatchResultLogicalCombinators with ResultLogicalCombinators

This trait provides logical operators to combine match results where potentially a MatchResult expression throws an Exception, either because it is an error or because it is a ThrownExpectation

This trait provides logical operators to combine match results where potentially a MatchResult expression throws an Exception, either because it is an error or because it is a ThrownExpectation

Companion:
object

Implicit conversions for MatchResults

Implicit conversions for MatchResults

Companion:
object

this trait allows to fill-in stack traces on match results for precise location

this trait allows to fill-in stack traces on match results for precise location

case class MatchSkip[T] extends MatchResult[T]
class MatchSkipException[T](val s: MatchSkip[T]) extends SkipException with MatchResultException[T]

this class allows to throw a skipped match result in an Exception

this class allows to throw a skipped match result in an Exception

Companion:
object
Companion:
class
case class MatchSuccess[T] extends MatchResult[T]

The signature of this class constructor is unusual, with a useless implicit parameter.

The signature of this class constructor is unusual, with a useless implicit parameter.

This is actually here to avoid overloading conflicts with the apply method in the companion object

Companion:
object
Companion:
class
trait Matcher[-T]

The Matcher trait is the base trait for any Matcher.

The Matcher trait is the base trait for any Matcher.

This trait can be extended to provide an appropriate apply method that will check an expectable value a: Expectable[T].

The result of a match is a MatchResult object (@see MatchResult).

Matchers can be composed.

Implementation notes:

  • the parameter to the apply method must be a by-name parameter. This allows some values to be evaluated only when necessary.

  • However in the implementation of the apply function, it must be taken care of not evaluating the parameter twice. Assigning it to a val is the solution to this issue.

Companion:
object
object Matcher
Companion:
class

This trait provides 'zip' operators to create matchers on tuples based on "zipped" matchers on fields

This trait provides 'zip' operators to create matchers on tuples based on "zipped" matchers on fields

Companion:
object

Generation code for the MatcherZipOperators trait

Generation code for the MatcherZipOperators trait

Trait aggregating the most common specs2 matchers

Trait aggregating the most common specs2 matchers

Companion:
object
object Matchers extends Matchers
Companion:
class
Companion:
object
Companion:
class

This trait provides implicit definitions from MatchResults and Booleans to Results.

This trait provides implicit definitions from MatchResults and Booleans to Results.

It also allows to:

  • create matchers from functions
  • create matchers for seqs and sets from single matchers
Companion:
object
Companion:
class
class MustExpectable[T] extends Expectable[T]

This kind of expectable can be followed by the verb must to apply a matcher:

This kind of expectable can be followed by the verb must to apply a matcher:

1 must beEqualTo(1)

For convenience, several mustMatcher methods have also been defined as shortcuts to equivalent:

a must matcher

Companion:
object
Companion:
class

This trait provides implicit definitions to transform any value into a MustExpectable

This trait provides implicit definitions to transform any value into a MustExpectable

Companion:
object
Companion:
class
Companion:
object
trait MustThrownExpectations extends MustThrownExpectables with StandardResults with StandardMatchResults

This trait provides implicit definitions to transform any value into a MustExpectable, throwing exceptions when a match fails

This trait provides implicit definitions to transform any value into a MustExpectable, throwing exceptions when a match fails

Companion:
object
case class NeutralMatch[T] extends MatchResult[T]
class NeutralMatcher[T] extends Matcher[T]

This special matcher always return a NeutralMatch MatchResult (an implicit Success)

This special matcher always return a NeutralMatch MatchResult (an implicit Success)

case class NeverMatcher[T]() extends Matcher[T]

This matcher never matches any value of type T

This matcher never matches any value of type T

this trait doesn't fill-in stack traces

this trait doesn't fill-in stack traces

code generation for the NoMatcherZipOperatorsImplicits trait

code generation for the NoMatcherZipOperatorsImplicits trait

This trait can be used to remove aka and must methods on any value

This trait can be used to remove aka and must methods on any value

This trait can be used to remove aka and should methods on any value

This trait can be used to remove aka and should methods on any value

This trait can be used to cancel the effect of thrown expectations.

This trait can be used to cancel the effect of thrown expectations.

For example it can be mixed-in a mutable.Specification so that no exception is thrown on failure

trait NoTypedEqual extends TypedEqual

This trait can be used to suppress the TypedEqual implicit

This trait can be used to suppress the TypedEqual implicit

case class NotMatch[T] extends MatchResult[T]
class NotMatcher[T] extends Matcher[T]

This special matcher always return a NotMatch MatchResult. It will negate the next match applied to it.

This special matcher always return a NotMatch MatchResult. It will negate the next match applied to it.

Matchers for Numerical values

Matchers for Numerical values

Companion:
object
Companion:
class

Matchers for Operation values

Matchers for Operation values

Companion:
object
Companion:
class
class OptionLikeCheckedMatcher[F[_], T, U](typeName: String, toOption: F[T] => Option[U], check: ValueCheck[U]) extends Matcher[F[T]]
class OptionLikeMatcher[F[_], T, U](typeName: String, toOption: F[T] => Option[U]) extends Matcher[F[T]]

Matchers for Options

Matchers for Options

Companion:
object
Companion:
class
class OrMatch[T] extends MatchResult[T]
class OrNotMatch[T] extends MatchResult[T]
class OrderingMatcher[T] extends Matcher[Seq[T]]
case class PlusOrMinus[S](n: S, delta: S)

class representing a numeric range

class representing a numeric range

Companion:
class

Matchers for Results

Matchers for Results

Companion:
object
Companion:
class

Those definitions help specifying the result messages for matchers

Those definitions help specifying the result messages for matchers

Companion:
object
Companion:
class
case class RightCheckedMatcher[T](check: ValueCheck[T]) extends OptionLikeCheckedMatcher[Either, T, T]
case class RightMatcher[T]() extends OptionLikeMatcher[Either, T, T]
trait Scope

This trait represents any Scope that is used to enclose expectations which might be thrown

This trait represents any Scope that is used to enclose expectations which might be thrown

Companion:
object
object Scope
Companion:
class
class ShouldExpectable[T] extends Expectable[T]

This kind of expectable can be followed by the verb should to apply a matcher:

This kind of expectable can be followed by the verb should to apply a matcher:

1 should beEqualTo(1)

For convenience, several shouldMatcher methods have also been defined as shortcuts to equivalent:

a should matcher

Companion:
object
Companion:
class

This trait provides implicit definitions to transform any value into a ShouldExpectable

This trait provides implicit definitions to transform any value into a ShouldExpectable

Companion:
object
Companion:
object

This trait provides implicit definitions to transform any value into a ShouldExpectable, throwing exceptions when a match fails

This trait provides implicit definitions to transform any value into a ShouldExpectable, throwing exceptions when a match fails

Companion:
object
case class SignificantFigures(number: Int)
case class SignificantTarget[T](target: T, significantFigures: SignificantFigures)(implicit evidence$4: Numeric[T])
class SizedCheckedMatcher[T](check: ValueCheck[Int], sizeWord: String)(implicit evidence$2: Sized[T]) extends Matcher[T]
class SizedMatcher[T](n: Int, sizeWord: String)(implicit evidence$1: Sized[T]) extends Matcher[T]
case class SomeCheckedMatcher[T](check: ValueCheck[T]) extends OptionLikeCheckedMatcher[Option, T, T]
case class SomeMatcher[T]() extends OptionLikeMatcher[Option, T, T]

This trait can be used in conjunction with Pattern matchers:

This trait can be used in conjunction with Pattern matchers:

List(1, 2) must be like { case List(a, b) => ok } List(1, 2) must be like { case List(a, b) => ko("unexpected") }

Companion:
object

This trait evaluates expectations and stores them in a local variable for further usage

This trait evaluates expectations and stores them in a local variable for further usage

case class StringMatcher(m: AdaptableMatcher[Any])

The StringMatchers trait provides matchers which are applicable to String objects

The StringMatchers trait provides matchers which are applicable to String objects

Companion:
object
Companion:
class

Thrown expectations will throw a FailureException if a match fails

Thrown expectations will throw a FailureException if a match fails

This trait can be extended to be used in another framework like ScalaTest:

trait ScalaTestExpectations extends ThrownExpectations { override protected def checkFailure[T](m: =>MatchResult[T]) = { m match { case f @ MatchFailure(ok, ko, _, _, _) => throw new TestFailedException(f.message, f.exception, 0) case _ => () } m } }

Companion:
object

Lightweight ThrownExpectations trait with less implicit methods

Lightweight ThrownExpectations trait with less implicit methods

This trait can be used to integrate failures and skip messages into specs2

This trait can be used to integrate failures and skip messages into specs2

trait ThrownStandardResults extends StandardResults with ExpectationsCreation
trait TraversableMatchers extends LazyParameters with ImplicitParameters with NumberOfTimes

Matchers for traversables

Matchers for traversables

Companion:
object
case class TryFailureCheckedMatcher[T](check: ValueCheck[Throwable]) extends OptionLikeCheckedMatcher[Try, T, Throwable]
case class TryFailureMatcher[T]() extends OptionLikeMatcher[Try, T, Throwable]

Matchers for util.Try instances

Matchers for util.Try instances

Companion:
object
object TryMatchers extends TryMatchers
Companion:
class
case class TrySuccessCheckedMatcher[T](check: ValueCheck[T]) extends OptionLikeCheckedMatcher[Try, T, T]
case class TrySuccessMatcher[T]() extends OptionLikeMatcher[Try, T, T]

This trait adds some implicits to create expectations with the === sign

This trait adds some implicits to create expectations with the === sign

Companion:
object
Companion:
class
trait ValueCheck[T]

Common interface for checks of a value of type T:

Common interface for checks of a value of type T:

  • a expected single value of type T
  • a Matcher[T]
  • a function returning a type R having an AsResult instance
Companion:
object
object ValueCheck extends ValueChecks
Companion:
class

implicit conversions used to create ValueChecks

implicit conversions used to create ValueChecks

Companion:
object
object ValueChecks extends ValueChecks
Companion:
class

Inherited classlikes

implicit class Returns[T](t: => T)(implicit evidence$1: AsResult[T])
Inherited from:
ReturnsSyntax

Value members

Inherited methods

protected def checkFailure[T](m: MatchResult[T]): MatchResult[T]

this method can be overridden to throw exceptions when checking the match result

this method can be overridden to throw exceptions when checking the match result

Inherited from:
ExpectationsCreation
protected def checkMatchResultFailure[T](m: MatchResult[T]): MatchResult[T]

this method can be overridden to throw exceptions when checking the match result

this method can be overridden to throw exceptions when checking the match result

Inherited from:
ExpectationsCreation
protected def checkResultFailure(r: => Result): Result

this method can be overridden to throw exceptions when checking the result

this method can be overridden to throw exceptions when checking the result

Inherited from:
ExpectationsCreation
def createExpectable[T](t: => T, alias: Option[String => String]): Expectable[T]
Returns:

an Expectable with a description function

Inherited from:
ExpectationsCreation
def createExpectable[T](t: => T, alias: String => String): Expectable[T]
Returns:

an Expectable with a description function

Inherited from:
ExpectationsCreation
def createExpectable[T](t: => T, alias: => String): Expectable[T]
Returns:

an Expectable with a description

Inherited from:
ExpectationsCreation
def createExpectable[T](t: => T): Expectable[T]
Returns:

an Expectable

Inherited from:
ExpectationsCreation
def createExpectableWithShowAs[T](t: => T, showAs: => String): Expectable[T]
Returns:

an Expectable with a function to show the element T

Inherited from:
ExpectationsCreation
protected def mapMatchResult[T](m: MatchResult[T]): MatchResult[T]

this method can be overridden to intercept a MatchResult and change its message before it is thrown

this method can be overridden to intercept a MatchResult and change its message before it is thrown

Inherited from:
ExpectationsCreation
protected def sandboxMatchResult[T](mr: => MatchResult[T]): MatchResult[T]
Returns:

the match result without any side-effects

Inherited from:
ExpectationsCreation
protected def setStacktrace[T](m: MatchResult[T]): MatchResult[T]

this method can be overridden to avoid filling-in a stacktrace indicating the location of the result

this method can be overridden to avoid filling-in a stacktrace indicating the location of the result

Inherited from:
MatchResultStackTrace

Implicits

Inherited implicits

final implicit def Returns[T : AsResult](t: => T): Returns[T]
Inherited from:
ReturnsSyntax