我在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,请这样做。