Szukaj…


Wprowadzenie

Dokumenty Mockito mają doskonały przykład, jak zapewnić sekwencję odpowiedzi dla wielu połączeń z próbą. Nie obejmują one jednak tego, jak to zrobić dla metody, która zwraca void, poza zauważeniem, że metody stub void wymagają użycia rodziny metod do .

Uwagi

Pamiętaj, że dla nie-pustych sposobów, when(mock.method()).thenThrow().thenReturn() wersja (patrz docs ) jest korzystny, ponieważ jest argumentem typu bezpieczny i bardziej czytelny.

Udawanie błędu przejściowego

Wyobraź sobie, że testujesz kod wywołujący ten interfejs i chcesz się upewnić, że kod ponownej próby działa.

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

Możesz zrobić coś takiego:

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
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow