1
にコールバックして連続した呼び出しをスタブする方法次のようなメソッド呼び出しをスタブすることができますMockitoを使用する場合mockito
when(mock.someMethod("some arg"))
.thenThrow(new RuntimeException())
.thenReturn("foo");
しかし、あなたの方法はvoid
を返すときには、この形式でスタブする必要があります。
doAnswer(new Answer() {..).when(mock). someMethod("some arg");
は、私はあなたがCをスタブすることができますWorker.class
class Worker {
void doWork(Callback callback) {
boolean success= ...;
if(success){
callback.onSuccess();
}else {
callback.onFail();
}
}
}
を持っている想像してみてこのコードでオールズ:
doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
Callback callback= invocation.getArguments()[0];
callback.onSuccess();
return null;
}
}).when(mockWorker).doWork(any(Callback.class));
は今、私は労働者には3つの連続した呼び出しが、私はそれをどのように行うことができますonFail, onSuccess, onFail
を呼び出すようにすることをスタブにしたいと想像しますか?それぞれのanswer(InvocationOnMock invocation)
コール内のモックを再設定する必要がありますか?