ScalaTest Matchers与MustMatchers的区别

时间:2015-09-02 12:50:18

标签: scala scalatest matcher

对于最新版本的ScalaTest,我们有两个匹配器,一个是Matchers(之前是ShouldMatchers)和MustMatchers

这两者之间的真正区别是什么?团队可以选择这种风格吗?

此外,shouldBeshould be

之间存在任何差异

1 个答案:

答案 0 :(得分:8)

唯一的区别是 - 来自t he ScalaDocs for MustMatcher的引用:

  

特征MustMatchersMatchers的替代,提供与Matchers完全相同的含义,语法和行为,但使用动词必须而不是应该。这两个特征仅在动词的英语语义上有所不同:应该是非正式的,使代码感觉像是作者和读者之间的对话;必须更正式,使代码更像是书面规范。

至于should beshouldBe ...这取决于您调用的should[Be]实例。在所有情况下,shouldBe都会减少一个注册步骤(因为它会跳过be所做的工作)。有时它看起来意味着分配的对象更少 - 其他时候,采取相同的步骤,但是“应该”和“是”都在一次通过中注册。据我所知,行为没有区别(至少在编写测试的日常工作中),它只是你喜欢的风格。