对于最新版本的ScalaTest,我们有两个匹配器,一个是Matchers
(之前是ShouldMatchers)和MustMatchers
。
这两者之间的真正区别是什么?团队可以选择这种风格吗?
此外,shouldBe
和should be
答案 0 :(得分:8)
唯一的区别是 - 来自t he ScalaDocs for MustMatcher
的引用:
特征
MustMatchers
是Matchers
的替代,提供与Matchers
完全相同的含义,语法和行为,但使用动词必须而不是应该。这两个特征仅在动词的英语语义上有所不同:应该是非正式的,使代码感觉像是作者和读者之间的对话;必须更正式,使代码更像是书面规范。
至于should be
与shouldBe
...这取决于您调用的should[Be]
实例。在所有情况下,shouldBe
都会减少一个注册步骤(因为它会跳过be
所做的工作)。有时它看起来意味着分配的对象更少 - 其他时候,采取相同的步骤,但是“应该”和“是”都在一次通过中注册。据我所知,行为没有区别(至少在编写测试的日常工作中),它只是你喜欢的风格。