La vérification d'un appel d'un static void méthode avec powermockito
Je suis en train d'essayer de capturer le "logError' méthode dans une classe statique (dans le sens de chaque méthode/champ est statique), et de vérifier qu'il a été appelé un certain nombre de fois par d'autres méthodes dans la même classe.
cette méthode est:
public static void logError(Object message){
LOGGER.error(message); //static logger
}
ma tentative de le tester:
@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));
}
Mon problème est que, peu importe combien de fois je précise, il passe. J'ai enlevé les moqueries de comportement et de savons pour un fait que l'enregistreur est appelée une fois, mais je peux avoir PowerMockito.verifyStatic(Mockito.times(9001));
à la place, et il continue de passer. Comment puis-je tester?
OriginalL'auteur AdamSpurgin | 2014-03-04
Vous devez vous connecter pour publier un commentaire.
Vous êtes en manque une ligne de code après
verifyStatic
. Vous n'êtes pas raconter PowerMock ce à vérifier. Vous êtes aussi moqueur tous méthodes statiques de la classe au lieu de simplement l'un que vous ne voulez pas appelé.Vous devez peut-être faire un peu de débogage, parce que, dans mon expérience, la définition des attentes parfois des appels de sous-jacents de la méthode, de toute façon.
Voici la javadoc de
spy
: http://static.javadoc.io/org.powermock/powermock-api-mockito/1.5.4/org/powermock/api/mockito/PowerMockito.html#spy(java.lang.Class)Voici la javadoc de
verifyStatic
: http://static.javadoc.io/org.powermock/powermock-api-mockito/1.5.4/org/powermock/api/mockito/PowerMockito.html#verifyStatic(org.mockito.verification.VerificationMode)Fait. Je n'ai pas utilisé la dernière version car je n'ai pas re-testé avec il.
OriginalL'auteur Matt Lachman