What is the === (triple-equals) operator in Scala Koans?

ScalaScalatestScala 2.9

Scala Problem Overview


I started working my way through the Scala Koans, which is organized around a suite of unit tests with blanks that one needs to fill in. (This idea was modeled after a similar Ruby Koans project.) You start the sbt tool running a test, and it admonishes:

[info]   + *****************************************
[info]   +
[info] +
[info] +
[info] + Please meditate on koan "None equals None" of suite "AboutEmptyValues" [info] +
[info] +
[info] +
[info] + *****************************************

...and so you go look at this unit test and it says:

test("None equals None") {
assert(None === __)
}

...and, after meditation, you realize that you should fill in the blank like this:

test("None equals None") {
assert(None === None)
}

...and then it moves on to the next unit test.

My question, though, is what is this === operator? I can't seem to find it anywhere. Is this a DSL operator defined in the Scala Koans project itself? Or is it part of the ScalaTest framework? Or in Scala proper?

Scala Solutions


Solution 1 - Scala

This is the triple-equals operator from ScalaTest. Have a look at this page: Getting Started with FunSuite. It says:

> ScalaTest lets you use Scala's assertion syntax, but defines a triple > equals operator (===) to give you better error messages. The following > code would give you an error indicating only that an assertion failed: > > > assert(1 == 2) > > Using triple equals instead would give you the more informative error > message, "1 did not equal 2": > > assert(1 === 2)

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionpohlView Question on Stackoverflow
Solution 1 - ScalarolveView Answer on Stackoverflow