サーチ…


前書き

Mockitoのドキュメントには、モックへの複数の呼び出しに対して一連の回答を提供する優れた例があります。しかし、voidメソッドがdoメソッド群を使用する必要があることに気づくこと以外に、voidを返すメソッドのためにそれを行う方法については扱っていません

備考

非voidメソッドの場合、 when(mock.method()).thenThrow().thenReturn()バージョン( docsを参照)は、型保証型で読みやすくなるため、優先されます。

一時的なエラーの偽装

このインタフェースを呼び出すコードをテストしていて、再試行コードが動作していることを確認したいとします。

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