2016-02-05 64 views
3

我在我的Scala Play項目中使用了ScalaTest。但我在這裏有一個問題,何時使用正常的assert(xxx === yyy)以及何時使用ScalaTest匹配器,如xxx should be yyyScalaTest斷言和匹配器

我個人更喜歡使用斷言,因爲它很簡單和乾淨。也可以利用ScalaTest的TypedCheckTrippleEquals支持,但匹配者不能。

對於匹配器,到目前爲止我只發現匹配器可以做但不能斷言的一件事,即Array(1, 2) should equal (Array(1, 2))成功。

不太確定哪個是推薦的,有沒有其他的東西可以做得更多?否則高興使用斷言。

+0

好問題。文檔[這裏](http://www.scalatest.org/user_guide/using_matchers#checkingEqualityWithMatchers)非常好。 – marios

回答

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,請做。

相關問題