伪造瞬态错误
想象一下,你正在测试调用此接口的代码,并且你希望确保重试代码正常工作。
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();
}