测试一个数组是否包含另一个带有 Hamcrest 的数组中的元素



我实际上有两种类型的数据:

a = ["1", "2", "3", "3", "5"]
b = ["7", "2"]
given()
.header("Content-Type", "application/json").
when()
.post(this.url).
then()
.statusCode(200)
.contentType("application/json")
.body(myPathToData, everyItem(haveOneOrMoreElementFrom(a)));

我想用 Hamcrest 测试我的身体反应,在我的放心请求后,如果 b(收到的元素(包含来自 a(在我的示例中haveOneOrMoreElementFrom(的一个或多个元素。

是否也可以在我的身体反应中发挥作用?

溶液:

我找到了一个可能的解决方案:everyItem(hasItem(isIn(a)))

我相信检查b是否包含至少一个a元素的解决方案是

assertThat(b, hasItemInArray(isIn(a))); // for arrays
assertThat(b, hasItem(isIn(a))); // for collections

在放心的情况下,这将是

...
then()
.body(pathToData, hasItem(isIn(a)));

在 Hamcrest 2 中,org.hamcrest.Matchers::isIn方法已弃用,因此建议改用is(in(a))或仅使用in(a)

相关内容

  • 没有找到相关文章

最新更新