我在Scala Play项目中使用了ScalaTest。但是我在这里有一个问题,何时使用普通的assert(xxx === yyy)以及何时使用ScalaTest匹配器(如xxx should be yyy)。

就我个人而言,我更喜欢使用assert,因为它既简单又干净。也可以利用ScalaTest的TypedCheckTrippleEquals支持,但匹配器不能。

对于匹配器,到目前为止,我只发现匹配器可以做的一件事,但不能断言,即Array(1, 2) should equal (Array(1, 2))成功。

不太确定推荐哪个,匹配器还有其他东西可以做得更多吗?否则很高兴使用断言。

最佳答案

这是匹配器的一些我喜欢的东西:

1)检查范围内的数字

sevenDotOh should equal (6.9 +- 0.2)

2)检查长度
result should have length 3

3)检查类型
result1 shouldBe a [Tiger]

4)检查一个或多个元素是否属于集合
List(1, 2, 3, 4, 5) should contain oneOf (5, 7, 9)
List(1, 2, 3) should contain (2)

5)各种酷测试
List(1, 2, 3) shouldBe sorted

如果您尚未阅读此documentation,请这样做。

07-24 09:48
查看更多