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>]

我已经尝试了一些变体,但我没有通过测试。只需查看错误的“But:was”部分,我就可以看到所有 6 个值都符合要求,但测试仍然失败。

我很长时间没有使用 Groovy 或 Hamcrest,所以我确定我错过了一些东西。谢谢

4

1 回答 1

5

你可以只使用groovy吗?

assert results.every { it in 1..6 }
于 2012-11-10T20:58:34.533 回答