Buscar..


Introducción

Los documentos de Mockito tienen un excelente ejemplo de cómo proporcionar una secuencia de respuestas para múltiples llamadas a un simulacro. Sin embargo, no cubren cómo hacer eso para un método que devuelve vacío, aparte de señalar que los métodos para anular el vaciamiento requieren el uso de la familia de métodos do .

Observaciones

Recuerde, para los métodos que no son nulos, se prefiere la versión when(mock.method()).thenThrow().thenReturn() (ver documentos ) porque es un argumento de tipo seguro y más legible.

Fingiendo un error transitorio

Imagine que está probando el código que realiza una llamada a esta interfaz y desea asegurarse de que el código de reintento funciona.

public interface DataStore {
    void save(Data data) throws IOException;
}

Podrías hacer algo como esto:

public void saveChanges_Retries_WhenDataStoreCallFails() {
    DataStore dataStore = new DataStore();
    Data data = new Data();
    doThrow(IOException.class).doNothing().when(dataStore).save(data);

    dataStore.save(data);

    verify(dataStore, times(2)).save(data);
    verifyDataWasSaved();
}


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow