Qual é o padrão idiomático de Hamcrest para afirmar que cada elemento de um iterável corresponde a um determinado matcher?
Examine o seguinte trecho:
assertThat(
Arrays.asList("1x", "2x", "3x", "4z"),
not(hasItem(not(endsWith("x"))))
);
Isso afirma que a lista não possui um elemento que não termine com "x". É claro que essa é a maneira de dois negativos de dizer que todos os elementos da lista terminam com "x".
Observe também que o trecho lança:
java.lang.AssertionError:
Expected: not a collection containing not a string ending with "x"
got: <[1x, 2x, 3x, 4z]>
Isto lista a lista inteira, em vez de apenas o elemento que não termina com "x"
Existe uma maneira idiomática de:
Afirmando que cada elemento termina com "x" (sem negativos duplos)No erro de asserção, liste apenas os elementos que não terminam com "x"