Überprüfen rufen Sie eine statische void-Methode mit powermockito
Ich versuche zu erfassen, die 'logerror keinen Sinn" - Methode in einer statischen Klasse (im Sinne von jeder Methode/Feld statisch ist), und überprüfen Sie genannt wurde einige Male von anderen Methoden in derselben Klasse.
dieser Methode ist:
public static void logError(Object message){
LOGGER.error(message); //static logger
}
mein Versuch, es zu testen:
@Test
public void errLogTest() throws Exception{
PowerMockito.mockStatic(X.class);
PowerMockito.doNothing().when(X.class);
X.logError(Mockito.anyString());
X.open();
X.open(); //should log error for opening twice
PowerMockito.verifyStatic(Mockito.times(1));
}
Mein problem ist, egal wie viele Male ich angeben, es geht. Ich entfernte Spott Verhalten und wissen, für eine Tatsache, dass die logger einmal aufgerufen wird, aber ich kann PowerMockito.verifyStatic(Mockito.times(9001));
statt und es immer noch geht. Wie kann ich dies testen?
InformationsquelleAutor AdamSpurgin | 2014-03-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihnen fehlt eine Zeile code nach
verifyStatic
. Du bist nicht sagen, PowerMock was zu überprüfen. Sie sind auch Spott alle statische Methoden der Klasse statt nur die, die Sie nicht wollen, genannt.Können Sie noch brauchen, um einige zu Debuggen, da, nach meiner Erfahrung, Einstellung der Erwartungen, manchmal ruft das zugrunde liegende Methode sowieso.
Hier ist die javadoc für
spy
: http://static.javadoc.io/org.powermock/powermock-api-mockito/1.5.4/org/powermock/api/mockito/PowerMockito.html#spy(java.lang.Class)Hier ist die javadoc für
verifyStatic
: http://static.javadoc.io/org.powermock/powermock-api-mockito/1.5.4/org/powermock/api/mockito/PowerMockito.html#verifyStatic(org.mockito.verification.VerificationMode)Getan. Ich habe nicht die neueste version, weil ich noch nicht wieder getestet.
InformationsquelleAutor Matt Lachman