Ich habe eine Liste von Ganzzahlen (aktuell) und ich möchte überprüfen, ob diese Liste alle Elemente aus der Liste erwartet enthält und nicht einmal ein Element aus der Liste notExpected, so dass Code wie folgt aussieht:
%Vor%So lange so gut. Aber wenn ich
hinzufüge %Vor%Der Test ist auch grün. Habe ich den Hamcrest Matcher missbraucht? Übrigens.
%Vor%gibt mir die richtige Antwort, aber ich dachte, dass ich den Hamcrest-Matcher einfach dafür verwenden kann. Ich benutze Junit 4.11 und Hamcrest 1.3
hasItems(notExpected...)
würde nur dann mit current
übereinstimmen, wenn alle Elemente von notExpected
ebenfalls in current
wären. Also mit der Linie
Sie behaupten, dass current
nicht alle Elemente von notExpected
enthält.
Eine Lösung um zu bestätigen, dass current
keine Elemente enthält von notExpected
:
und dann müssen Sie die Liste nicht einmal in Array konvertieren. Diese Variante ist vielleicht etwas lesbarer, erfordert aber die Konvertierung in ein Array:
%Vor% Beachten Sie, dass diese Matcher nicht von CoreMatchers
in hamcrest-core
stammen, also müssen Sie eine Abhängigkeit von hamcrest-library
hinzufügen.