ScalaTest断言和匹配

时间:2016-02-05 00:38:50

标签: scala scalatest matcher

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

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

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

不太确定推荐哪一个,是否有其他东西匹配者可以做更多?否则很高兴使用assert。

1 个答案:

答案 0 :(得分:3)

以下是我喜欢的匹配器

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,请执行此操作。