在ScalaTest中,`should`,`can`,`must`之间有什么区别

时间:2014-03-07 05:22:43

标签: unit-testing scala scalatest

刚开始使用ScalaTest,我非常喜欢它。

仅仅阅读the docs我到目前为止无法确定canshould和{{1}之间是否存在实质差异} must

的子句

特别是,我想知道FlatSpec失败是否与must失败有什么不同 - 或者只是“语法糖”才能使测试更好地自我记录。

1 个答案:

答案 0 :(得分:20)

shouldmust在语义上相同。但这不是关于更好的文档,它基本上只取决于个人风格偏好(我更喜欢must)。

can有点不同。你不能(nomen omen)直接使用它作为匹配器,它只能在测试描述符中使用。引自FlatSpec

  

注意:您可以在FlatSpec中使用must或can。对于   例如,而不是它应该“弹出......,你可以写它必须”pop ...   或者它可以“弹出......

(同样适用于WordSpectwo corresponding灯具类

请注意,在短时间内(我认为在ScalaTest 2.0.x中),不推荐使用must,但在2.1.0中,决定has been reverted

  

org.scalatest包中复活的MustMatchers。更改了弃用   警告org.scalatest.matchers.MustMatchers建议使用   org.scalatest.MustMatchers而不是org.scalatest.Matchers   是2.0中的建议。向迁移到的用户发表道歉   应该已经升级到2.0。