Что такое оператор = = = (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)