刚开始使用ScalaTest,我非常喜欢它。
仅仅阅读the docs我到目前为止无法确定can
,should
和{{1}之间是否存在实质差异} must
。
特别是,我想知道FlatSpec
失败是否与must
失败有什么不同 - 或者只是“语法糖”才能使测试更好地自我记录。
答案 0 :(得分:20)
should
和must
在语义上相同。但这不是关于更好的文档,它基本上只取决于个人风格偏好(我更喜欢must
)。
can
有点不同。你不能(nomen omen)直接使用它作为匹配器,它只能在测试描述符中使用。引自FlatSpec
:
注意:您可以在FlatSpec中使用must或can。对于 例如,而不是它应该“弹出......,你可以写它必须”pop ... 或者它可以“弹出......
(同样适用于WordSpec
和two 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。