Поиск…


Вступление

В документах Mockito есть отличный пример того, как предоставить последовательность ответов для нескольких вызовов макета. Тем не менее, они не описывают, как это сделать для метода, который возвращает void, за исключением замечаний о том, что методы stubbing void требуют использования семейства методов do .

замечания

Помните, что для Непустых методов, то when(mock.method()).thenThrow().thenReturn() версии (см документации ) является предпочтительным , поскольку он является типобезопасным аргумент и более удобной для чтения.

Подделка временной ошибки

Представьте, что вы тестируете код, который вызывает вызов этого интерфейса, и вы хотите убедиться, что ваш код повтора работает.

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

Вы могли бы сделать что-то вроде этого:

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
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow