Что такое оператор = = = (triple-equals) в Коанах Scala?

Я начал прокладывать свой путь через Коаны Скала, которая организована вокруг набора модульных тестов с пробелами, которые нужно заполнить. (Эта идея была смоделирована после аналогичного проекта Ruby Koans.) Вы запускаете инструмент sbt, выполняющий тест, и он предупреждает:

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

...и вот вы смотрите на этот модульный тест, и он говорит:

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

...и, после медитации, вы понимаете, что вы должны заполнить пробел, как это:

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

...а затем переходим к следующему модульному тесту.

мой вопрос, что это === оператор? Я нигде не могу его найти. Является ли это оператором DSL, определенным в самом проекте Scala Koans? Или это часть ScalaTest рамки? Или в Scala правильное?

1 ответов


это оператор тройного равенства из ScalaTest. Взгляните на эту страницу: начало работы с FunSuite. Он говорит:

ScalaTest позволяет использовать синтаксис утверждения Scala, но определяет тройку оператор equals ( = = = ), чтобы дать вам лучшие сообщения об ошибках. Следующий код даст вам ошибку, указывающую только на то, что утверждение не удалось:

assert(1 == 2)

использование тройных равных вместо этого даст вам более информативный ошибка сообщение "1 не равно 2":

assert(1 === 2)