我开始研究Scala Koans,它是围绕一系列单元测试组织的,需要填充空白。(这个想法是在类似的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) }
...然后继续进行下一次单元测试。
我的问题是,这个===
运算符是什么?我似乎无法在任何地方找到它。这是Scala Koans项目本身定义的DSL运营商吗?或者它是ScalaTest框架的一部分?或者在Scala中?
答案 0 :(得分:81)
这是来自ScalaTest的三等号运算符。看看这个页面:Getting Started with FunSuite。它说:
ScalaTest允许您使用Scala的断言语法,但定义了三元组 equals运算符(===)为您提供更好的错误消息。下列 代码会给你一个错误,只显示一个断言失败:
assert(1 == 2)
使用三等号代替会给你更多信息错误 消息,“1不等于2”:
assert(1 === 2)