Hamcrest behaupten, dass mehrdeutig?

7

Ich habe einen Samplecode von einer Hochschule bekommen, das Projekt importiert und versucht, die Tests auszuführen: Die Methode assertThat (Integer, Matcher) ist für den Typ MyClass

mehrdeutig

Jedes assertThat ist rot mit der gleichen Fehlermeldung, also habe ich versucht, den einfachsten Test zu schreiben, der das Problem beschreibt:

%Vor%

nachdem ich einen Bildlauf über assert gemacht habe, bekomme ich die folgende Nachricht:

%Vor%

Ich habe google und stackoverflow gesucht, konnte aber niemanden mit dem gleichen Problem finden ... Bitte helfen Sie.

EDIT1:

Lösung:

importieren Sie static org.junit.Assert. *; // löschen Sie diese Zeile

    
MartinL 31.10.2011, 14:48
quelle

2 Antworten

19

Sowohl org.junit.Assert als auch org.hamcrest.MatcherAssert deklarieren assertThat(T, Matcher<T>) . Wählen Sie, ob Sie das eine oder das andere statisch importieren möchten, aber nicht beides, und Sie sollten OK sein.

    
pholser 31.10.2011, 15:37
quelle
3

Es gibt zwei allgemeine Gründe dafür: unqualifizierte statische Importe ( import static blah.* ) oder mehrere Versionen von hancrest auf dem Pfad.

Sie können es vielleicht umgehen, indem Sie die Langform is(equalTo(3)) (Art von Zweifeln) verwenden, Ihre statischen Importe ausschließen usw.

Welchen Rahmen Sie verwenden, kann ebenfalls eine Rolle spielen.

    
Dave Newton 31.10.2011 15:37
quelle

Tags und Links