Ignorando las llamadas a métodos en Mockito

Con Mockito, ¿es posible ignorar una llamada a un método a un simulacro?

Por ejemplo, para el simulacro rugger Creado con mock(MyRugger.class):

class Pepe {

  public void runner() {     
    rugger.doIt(); 
    rugger.flushIt();
    rugger.boilIt();     
  } 
}

Solo necesito probar runner() pero evita el método flushIt().

preguntado el 16 de mayo de 11 a las 18:05

¿Qué quieres decir con ignorar? ¿Sin chequear? ¿Ignorar una llamada? ¿No te burlas? -

Esa edición cambia un poco las cosas. ¿Cómo pasa tu clase? rugger? -

Me refiero a la variable de instancia, rugger. ¿Cómo llega a cada instancia? ¿Se pasa a través de un constructor, un setter o se crea internamente? -

3 Respuestas

Para restablecer un simulacro en Mockito, simplemente llame reset en eso. Tenga en cuenta la preocupación muy real mencionada en el enlace anterior y el JavaDoc para reset indicando que puede representar un mal diseño.

Por lo general, esto debe evitarse, pero hay ocasiones en las que simplemente necesita hacer esto. El siguiente es un ejemplo de cómo usarlo, no es un buen ejemplo de cuándo usarlo.

Object value = mock(Object.class);

when(value.equals(null)).thenReturn(true);
assertTrue(value.equals(null));
verify(value).equals(null);

reset(value);

assertFalse(value.equals(null));
verify(value).equals(null);

contestado el 16 de mayo de 11 a las 23:05

Mockito es agradable y no verificará las llamadas a menos que usted se lo pida. Entonces, si no quieres verificar flush() simplemente verifique los métodos que le interesan:

verify(rugger).doIt();
verify(rugger).boilIt();

Si quieres verificar eso flush() NO fue llamado, use:

verify(rugger, never()).flush();

contestado el 17 de mayo de 11 a las 03:05

Utilice el método ignoreStub. Ver documentación aquí:

http://static.javadoc.io/org.mockito/mockito-core/2.13.0/org/mockito/Mockito.html

Respondido el 18 de enero de 18 a las 02:01

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.