Ich bin relativ neu für Matcher. Ich spiele mit Hamcrest in Kombination mit JUnit herum und es gefällt mir irgendwie.
Gibt es eine Möglichkeit, festzustellen, dass eine von mehreren Möglichkeiten richtig ist?
Etwas wie
assertThat( result, is( either( 1, or( 2, or( 3 ) ) ) ) ) //does not work in hamcrest
Die Methode, die ich teste, gibt ein Element einer Sammlung zurück. Die Liste kann mehrere Kandidaten enthalten. Meine aktuelle Implementierung gibt den ersten Treffer zurück, aber das ist keine Voraussetzung. Ich möchte, dass mein Testfall erfolgreich ist, wenn einer der möglichen Kandidaten zurückgegeben wird. Wie würden Sie dies in Java ausdrücken?
(Ich bin offen für Hamcrest-Alternativen)
assertThat((Set<String>)null, is(either(empty()).or(nullValue())));
gibt mir einen ziemlich seltsamen Assertionsfehler:Expected: is (an empty collection or null) but: was null
für Hamcrest1.3
...