Проверьте, содержит ли массив элемент из другого массива с помощью Hamcrest - PullRequest
0 голосов
/ 02 июля 2018

У меня фактически есть два типа данных:

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

1 Ответ

0 голосов
/ 02 июля 2018

Я считаю, что решение для проверки, если 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).

...