Ich habe Methoden wie diese:
public <T> method(String s, Class<T> t) {...}
Dass ich überprüfen muss, ob dies null
an das zweite Argument übergeben wird, wenn Matcher für die anderen Parameter verwendet werden, habe ich folgendermaßen ausgeführt:
@SuppressWarnings("unchecked")
verify(client).method(eq("String"), any(Class.class));
Aber gibt es einen besseren Weg (ohne Warnungen zu unterdrücken)? T
stellt den Rückgabetyp einer anderen Methode dar, die manchmal void
und in diesen Fällen übergeben null
wird.
java
unit-testing
mocking
mockito
leer
quelle
quelle
null
(stattany(Class.class)
)?Antworten:
Update von David Wallaces Antwort:
Ab 2016-12, Java 8 und Mockito 2.3,
ist veraltet und wird in Mockito 3.0 entfernt
verwenden
stattdessen
quelle
(Integer) isNull()
anstattisNull( Integer.class )
.org.mockito.Mockito.<String>isNull()
Mockito hat einen
isNull
Matcher , bei dem Sie den Namen der Klasse eingeben können. Wenn Sie es also mit anderen Matchern verwenden müssen, ist das RichtigeDies ist jetzt veraltet. Die neue Methode finden Sie in der folgenden Antwort: https://stackoverflow.com/a/41250852/1348
quelle
(String) isNull()
.isNull(String.class)
und(String) isNull()
sind gleichwertig. Gehen Sie mit dem, was für Sie sinnvoller ist.Das funktioniert bei mir:
quelle