0

Spring-Breaker プロジェクトを使用して自分のコードにサーキット ブレーカー ソリューションを実装しており、同じテスト ケースを作成していました。

次の例を検討してください。

@CircuitBreaker
methodA() {
    //some code
    gatewayServiceCall()
    //some code
}

methodA をテストし、CircuitBreaker タイムアウトを使用して失敗させる必要があるため、これを模擬するテスト クラスを作成しました。

setup() {
    gatewayService = mock(GatewayService.class);
    when(gatewayService.methodName().thenReturn(something);
}

@Test
testMethodA() {
    methodA();
}

methodA() を呼び出すだけでなく、gatewayServiceCall もモックするようにするにはどうすればよいですか。

質問が明確だったことを願っています。そうでない場合はお知らせください。さらに詳しく説明してみます。

ありがとう。

4

1 に答える 1

1

眠る答えを書くことができます:

final Foo fooFixture = new Foo();
Answer<Foo> answer = new Answer<Foo>() {

    @Override
    public Foo answer(InvocationOnMock invocation) throws Throwable {
        Thread.currentThread().sleep(5000);
        return fooFixture ;
    }
};
when(gatewayService.methodName()).thenAnswer(answer);
于 2015-09-23T15:30:25.343 に答える