web-dev-qa-db-fra.com

Méthode réelle d'appel simulée

J'ai une classe qui a 2 méthodes. Je veux me moquer de la classe, puis me moquer de la première méthode mais pas de la deuxième.

par exemple.

class C {
 void m1() { ...}
 boolean m2() { ... return flag;}
}     

code de test unitaire:

C cMock = Mockito.mock(C.class);
Mockito.doNothing().when(cMock).m1();
Mockito.when(cMock.m2()).thenCallRealMethod();

Ce qui est étrange, c'est que m2 n'est pas appelé.

est-ce que je manque quelque chose ici?

29
Java Spring Coder

C'est aussi là que Mockito.spy peut être utilisé. il vous permet de faire des simulations partielles sur des objets réels.

C cMock = Mockito.spy(new C());
Mockito.doNothing().when(cMock).m1();
39
ndrone

il manquait l'appel à: cMock.m2 ();

5
Java Spring Coder