MustMatchers

Companion object that facilitates the importing of MustMatchers members as
an alternative to mixing it the trait. One use case is to import MustMatchers members so you can use
them in the Scala interpreter:

$scala -classpath scalatest.jar
Welcome to Scala version 2.7.3.final (Java HotSpot(TM) Client VM, Java 1.5.0_16).
Type in expressions to have them evaluated.
Type :help for more information.

scala> 1 must equal (2)
org.scalatest.TestFailedException: 1 did not equal 2
at org.scalatest.matchers.Helper$.newTestFailedException(Matchers.scala:40)
at org.scalatest.matchers.MustMatchers$MustMethodHelper$.mustMatcher(MustMatchers.scala:826)
at org.scalatest.matchers.MustMatchers$IntMustWrapper.must(MustMatchers.scala:1123)
at .<init>(<console>:9)
at .<clinit>(<console>)
at RequestR...

scala> "hello, world" must startWith ("hello")

scala> 7 must (be >= (3) and not be <= (7))
org.scalatest.TestFailedException: 7 was greater than or equal to 3, but 7 was less than or equal to 7
at org.scalatest.matchers.Helper$.newTestFailedException(Matchers.scala:40)
at org.scalatest.matchers.MustMatchers$MustMethodHelper$.mustMatcher(MustMatchers.scala:826)
at org.scalatest.matchers.MustMatchers$IntMustWrapper.must(MustMatchers.scala:1123)
at .<init>(...

defasInstanceOf[T0]: T0

This method is used to cast the receiver object to be of type T0.

This method is used to cast the receiver object to be of type T0.

Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression1.asInstanceOf[String] will throw a ClassCastException at runtime, while the expressionList(1).asInstanceOf[List[String]] will not. In the latter example, because the type argument is erased as
part of compilation it is not possible to check whether the contents of the list are of the requested typed.

returns

the receiver object.

attributes: final

definition classes: Any

defassert(o: Option[String]): Unit

Assert that an Option[String] is None.

Assert that an Option[String] is None.
If the condition is None, this method returns normally.
Else, it throws TestFailedException with the Stringvalue of the Some included in the TestFailedException's
detail message.

This form of assert is usually called in conjunction with an
implicit conversion to Equalizer, using a === comparison, as in:

defassert(o: Option[String], clue: Any): Unit

Assert that an Option[String] is None.

Assert that an Option[String] is None.
If the condition is None, this method returns normally.
Else, it throws TestFailedException with the Stringvalue of the Some, as well as theString obtained by invoking toString on the
specified message,
included in the TestFailedException's detail message.

This form of assert is usually called in conjunction with an
implicit conversion to Equalizer, using a === comparison, as in:

defassert(condition: Boolean, clue: Any): Unit

Assert that a boolean condition, described in Stringmessage, is true.

Assert that a boolean condition, described in Stringmessage, is true.
If the condition is true, this method returns normally.
Else, it throws TestFailedException with theString obtained by invoking toString on the
specified message as the exception's detail message.

condition

the boolean condition to assert

clue

An objects whose toString method returns a message to include in a failure report.

Because trait Suite mixes in Assertions, this implicit conversion will always be
available by default in ScalaTest Suites. This is the only implicit conversion that is in scope by default in every
ScalaTest Suite. Other implicit conversions offered by ScalaTest, such as those that support the matchers DSL
or invokePrivate, must be explicitly invited into your test code, either by mixing in a trait or importing the
members of its companion object. The reason ScalaTest requires you to invite in implicit conversions (with the exception of the
implicit conversion for === operator) is because if one of ScalaTest's implicit conversions clashes with an
implicit conversion used in the code you are trying to test, your program won't compile. Thus there is a chance that if you
are ever trying to use a library or test some code that also offers an implicit conversion involving a === operator,
you could run into the problem of a compiler error due to an ambiguous implicit conversion. If that happens, you can turn off
the implicit conversion offered by this convertToEqualizer method simply by overriding the method in yourSuite subclass, but not marking it as implicit:

Implicitly converts an object of type java.util.List[T] to a JavaListMustWrapper[T],
to enable must methods to be invokable on that object. This conversion is necessary to enablelength to be used on Java Lists.

defeq(arg0: AnyRef): Boolean

This method is used to test whether the argument (arg0) is a reference to the
receiver object (this).

This method is used to test whether the argument (arg0) is a reference to the
receiver object (this).

The eq method implements an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence relation] on
non-null instances of AnyRef:
* It is reflexive: for any non-null instance x of type AnyRef, x.eq(x) returns true.
* It is symmetric: for any non-null instances x and y of type AnyRef, x.eq(y) returns true if and
only if y.eq(x) returns true.
* It is transitive: for any non-null instances x, y, and z of type AnyRef if x.eq(y) returns true and y.eq(z) returns true, then x.eq(z) returns true.

Additionally, the eq method has three other properties.
* It is consistent: for any non-null instances x and y of type AnyRef, multiple invocations of
x.eq(y) consistently returns true or consistently returns false.
* For any non-null instance x of type AnyRef, x.eq(null) and null.eq(x) returns false.
* null.eq(null) returns true.

When overriding the equals or hashCode methods, it is important to ensure that their behavior is
consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2), they
should be equal to each other (o1 == o2) and they should hash to the same value (o1.hashCode == o2.hashCode).

arg0

the object to compare against this object for reference equality.

returns

true if the argument is a reference to the receiver object; false otherwise.

The left should equal (right) syntax works by calling == on the leftvalue, passing in the right value, on every type except arrays. If left is an array, deepEqualswill be invoked on left, passing in right. Thus, even though this expression
will yield false, because Array's equals method compares object identity:

Array(1, 2) == Array(1, 2) // yields false

The following expression will not result in a TestFailedException, because deepEquals compares
the two arrays structurally, taking into consideration the equality of the array's contents:

defequals(arg0: Any): Boolean

This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

This method is used to compare the receiver object (this) with the argument object (arg0) for equivalence.

The default implementations of this method is an [http://en.wikipedia.org/wiki/Equivalence_relation equivalence
relation]:
* It is reflexive: for any instance x of type Any, x.equals(x) should return true.
* It is symmetric: for any instances x and y of type Any, x.equals(y) should return true if and
only if y.equals(x) returns true.
* It is transitive: for any instances x, y, and z of type AnyRef if x.equals(y) returns true and
y.equals(z) returns true, then x.equals(z) should return true.

If you override this method, you should verify that your implementation remains an equivalence relation.
Additionally, when overriding this method it is often necessary to override hashCode to ensure that objects
that are "equal" (o1.equals(o2) returns true) hash to the same
scala.Int
(o1.hashCode.equals(o2.hashCode)).

arg0

the object to compare against this object for equality.

returns

true if the receiver object is equivalent to the argument; false otherwise.

defexpect(expected: Any, clue: Any)(actual: Any): Unit

Expect that the value passed as expected equals the value passed as actual.

Expect that the value passed as expected equals the value passed as actual.
If the actual equals the expected(as determined by ==), expect returns
normally. Else, if actual is not equal to expected, expect throws anTestFailedException whose detail message includes the expected and actual values, as well as the Stringobtained by invoking toString on the passed message.

expected

the expected value

clue

An object whose toString method returns a message to include in a failure report.

defgetClass(): java.lang.Class[_]

Returns a representation that corresponds to the dynamic class of the receiver object.

Returns a representation that corresponds to the dynamic class of the receiver object.

The nature of the representation is platform dependent.

returns

a representation that corresponds to the dynamic class of the receiver object.

attributes: final

definition classes: AnyRef

defhashCode(): Int

Returns a hash code value for the object.

Returns a hash code value for the object.

The default hashing algorithm is platform dependent.

Note that it is allowed for two objects to have identical hash codes (o1.hashCode.equals(o2.hashCode)) yet
not be equal (o1.equals(o2) returns false). A degenerate implementation could always return 0.
However, it is required that if two objects are equal (o1.equals(o2) returns true) that they have
identical hash codes (o1.hashCode.equals(o2.hashCode)). Therefore, when overriding this method, be sure
to verify that the behavior is consistent with the equals method.

Intercept and return an exception that's expected to
be thrown by the passed function value.

Intercept and return an exception that's expected to
be thrown by the passed function value. The thrown exception must be an instance of the
type specified by the type parameter of this method. This method invokes the passed
function. If the function throws an exception that's an instance of the specified type,
this method returns that exception. Else, whether the passed function returns normally
or completes abruptly with a different exception, this method throws TestFailedException.

Note that the type specified as this method's type parameter may represent any subtype ofAnyRef, not just Throwable or one of its subclasses. In
Scala, exceptions can be caught based on traits they implement, so it may at times make sense
to specify a trait that the intercepted exception's class must mix in. If a class instance is
passed for a type that could not possibly be used to catch an exception (such as String,
for example), this method will complete abruptly with a TestFailedException.

f

the function value that should throw the expected exception

manifest

an implicit Manifest representing the type of the specified
type parameter.

defisInstanceOf[T0]: Boolean

This method is used to test whether the dynamic type of the receiver object is T0.

This method is used to test whether the dynamic type of the receiver object is T0.

Note that the test result of the test is modulo Scala's erasure semantics. Therefore the expression1.isInstanceOf[String] will return false, while the expression List(1).isInstanceOf[List[String]] will
return true. In the latter example, because the type argument is erased as part of compilation it is not
possible to check whether the contents of the list are of the requested typed.

returns

true if the receiver object is an instance of erasure of type T0; false otherwise.

defwait(): Unit

defwait(arg0: Long, arg1: Int): Unit

attributes: final

definition classes: AnyRef

defwait(arg0: Long): Unit

attributes: final

definition classes: AnyRef

defwithClue(clue: Any)(fun: ⇒ Unit): Unit

Executes the block of code passed as the second parameter, and, if it
completes abruptly with a ModifiableMessage exception,
prepends the "clue" string passed as the first parameter to the beginning of the detail message
of that thrown exception, then rethrows it.

Executes the block of code passed as the second parameter, and, if it
completes abruptly with a ModifiableMessage exception,
prepends the "clue" string passed as the first parameter to the beginning of the detail message
of that thrown exception, then rethrows it. If clue does not end in a white space
character, one space will be added
between it and the existing detail message (unless the detail message is
not defined).

This method allows you to add more information about what went wrong that will be
reported when a test fails. Here's an example: