arrays - 如何断言集合中的每个项目都在范围内

标签 arrays groovy junit4 hamcrest

我有一个 Groovy 数组,它将获得一组随机整数值。我想断言数组中的每个项目都有一个在给定范围内的值。我正在尝试使用 Hamcrest 匹配器。所以我的测试看起来像这样:

@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,所以我确定我遗漏了一些东西。
谢谢

最佳答案

你可以只使用 groovy 吗?

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

关于arrays - 如何断言集合中的每个项目都在范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13325797/

相关文章:

grails - 是什么 ?关于常规变量?

java - 如何使用 runlistener 创建 JUNIT 报告?

eclipse - 如何在Eclipse中递归地找到并运行所有Junit 4测试?

c - 需要帮助使用 qsort 对 C 中的结构数组进行排序

c - memcpy 将数组对象复制到 C 中的字符指针,反之亦然

groovy - GroovyFx 教程/博客

hibernate - 事务未在 Spring Test 中回滚以进行删除操作

php - 在各自的仪表板中使用 session 用户角色重定向用户

C++ char 数组与数组进行比较并分配单独的值;

java - 如何发布和使用依赖本地项目的 gradle 插件?