Изучите следующий фрагмент:
assertThat(
Arrays.asList("1x", "2x", "3x", "4z"),
not(hasItem(not(endsWith("x"))))
);
Это подтверждает, что в списке нет элемента, который не заканчивается на «x». Это, конечно, способ двойного отрицания сказать, что все элементы списка заканчиваются на «х».
Также обратите внимание, что фрагмент кода выдает:
java.lang.AssertionError:
Expected: not a collection containing not a string ending with "x"
got: <[1x, 2x, 3x, 4z]>
Этот список содержит весь список, а не только элемент, который не заканчивается на «x».
Так есть ли идиоматический способ:
- Утверждение, что каждый элемент заканчивается "x" (без двойных отрицаний)
- В случае ошибки подтверждения перечислите только те элементы, которые не заканчиваются на "x"