Reference card
Equality
The most common type of matcher is beEqualTo to test the equality of 2 values. Several syntaxes can be used, according to your own taste
| 1 must beEqualTo(1) | the normal way | 
| 1 must be_==(1) | with a symbol | 
| 1 must_== 1 | my favorite! | 
| 1 mustEqual 1 | if you dislike underscores | 
| 1 should_== 1 | for shouldlovers | 
| 1 === 1 | the ultimate shortcut | 
| 1 must be equalTo(1) | with a literate style | 
There are also other notions of equality
| beTypedEqualTo | typed equality. a must beTypedEqualTo(b)will not work ifaandbdon’t have compatible types | 
| be_=== | synonym for beTypedEqualTo | 
| a ==== b | synonym for a must beTypedEqualTo(b) | 
| a must_=== b | similar to a must_== bbut will not typecheck ifaandbdon’t have the same type | 
| be_==~ | check if (a: A) == conv(b: B)when there is an implicit conversionconvfromBtoA | 
| beTheSameAs | reference equality: check if a eq b(a must be(b)also works) | 
| be | a must be(b): synonym forbeTheSameAs | 
| beTrue, beFalse | shortcuts for Boolean equality | 
Note: the beEqualTo matcher is using the regular == Scala equality. However in the case of Arrays, Scala == is just using reference equality, eq. So the beEqualTo matcher has been adapted to use the .deep method on Arrays, transforming them to IndexedSeqs (possibly nested), before checking for equality, so that Array(1, 2, 3) === Array(1, 2, 3) (despite the fact that Array(1, 2, 3) != Array(1, 2, 3)).
Out of the box
These are the all the available matchers when you extend Specification
 | Optional
Those matchers are optional. To use them, you need to add a new trait to your specification:
 |