2012-11-10 37 views
4

我有一個Groovy數組,它將獲得一組隨機整數值。我想斷言數組中的每個項目都有一個在給定範圍內的值。我正在嘗試使用Hamcrest Matchers。所以,我的測試是這樣的:如何斷言集合中的每個項目都在範圍內

@Test 
void testShouldReturnArrayOfStats(){ 
    def results = pg.rollStats() 
    assertThat results, everyItem(both(greaterThan(0)).and(lessThanOrEqualTo(6))) 
} 

當我運行測試,我得到一個AssertionError

java.lang.AssertionError: Expected: every item is (a value greater than <0> and a value less than or equal to <6>) 
but: was [<6>, <3>, <5>, <4>, <3>, <2>] 

我已經試過這方面的一些變化,但我沒有得到通過的測試。僅僅通過查看錯誤的「但是:是」部分,我可以看到所有6個值都符合要求,但測試仍然失敗。

我沒有使用Groovy或Hamcrest很長時間,所以我確信我錯過了一些東西。 謝謝

回答

4

你可以只使用groovy?

assert results.every { it in 1..6 } 
+0

是的,我相信那些作品。對於groovy,我還是個新手,並且我試圖在同一時間整合一些其他工具。所以在這種情況下,簡單的groovy斷言給出了我正在尋找的結果。謝謝 – TroyB

相關問題