52

我开始通过Scala Koans进行工作,它围绕一组单元测试组织,其中包含需要填写的空白。(这个想法是在类似的 Ruby Koans 项目之后建模的。)您启动 sbt 工具运行测试,它告诫:

[信息] + ***********************************************
[信息] +  
[信息] +  
[信息] +  
[信息] + 请冥想套件“AboutEmptyValues”的公案“无等于无”
[信息] +  
[信息] +  
[信息] +  
[信息] + ***********************************************

...所以你去看看这个单元测试,它说:

测试(“无等于无”){
  断言(无 === __)
}

...并且,在冥想之后,你意识到你应该像这样填写空白:

测试(“无等于无”){
  断言(无 === 无)
}

...然后它继续进行下一个单元测试。

不过,我的问题是,这个===运算符是什么?我似乎无法在任何地方找到它。这是 Scala Koans 项目本身定义的 DSL 运算符吗?还是它是 ScalaTest 框架的一部分?还是在Scala中?

4

1 回答 1

90

这是来自ScalaTest的三等号运算符。看看这个页面:FunSuite 入门。它说:

ScalaTest 允许您使用 Scala 的断言语法,但定义了一个三等号运算符 (===) 以提供更好的错误消息。以下代码将给您一个错误,仅指示断言失败:

assert(1 == 2)

改用三等号会给您提供更多信息的错误消息,“1 不等于 2”:

assert(1 === 2)
于 2012-05-07T21:44:50.353 回答