1. ホーム
  2. java

[解決済み] Mockitoでスタブされたメソッドの応答を遅らせることはできますか?

2023-07-21 16:35:38

質問

現在、ユニットテストを書いています。実装のタイムアウト処理をテストするために、Mockitoで長時間実行のメソッドをシミュレートする必要があります。Mockitoで可能でしょうか?

このようなものです。

when(mockedService.doSomething(a, b)).thenReturn(c).after(5000L);

どのように解決するのですか?

単にスレッドを必要な時間だけスリープさせることができます。このようなことは自動化されたテストの実行を本当に遅くするので、そのようなテストを別のスイートに分離したいと思うかもしれません。

このような感じでしょうか。

when(mock.load("a")).thenAnswer(new Answer<String>() {
   @Override
   public String answer(InvocationOnMock invocation){
     Thread.sleep(5000);
     return "ABCD1234";
   }
});