私のアプリケーションでは、外部エンドポイントを呼び出す必要があり、遅すぎるとフォールバックがアクティブになります。回路遮断器のフォールバックが呼び出されたかどうかを確認するための統合テストを実装する方法は?
@FeignClient(name = "${config.name}", url = "${config.url:}", fallback = ExampleFallback.class)
public interface Example {
@RequestMapping(method = RequestMethod.GET, value = "/endpoint", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
MyReturnObject find(@RequestParam("myParam") String myParam);
}
とそのフォールバックの実装:また
@Component
public Class ExampleFallback implements Example {
private final FallbackService fallback;
@Autowired
public ExampleFallback(final FallbackService fallback) {
this.fallback = fallback;
}
@Override
public MyReturnObject find(final String myParam) {
return fallback.find(myParam);
}
、回路ブレーカのため設定されたタイムアウト: hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000
次のコードは、私のアプリがどのように見えるかの例です。
私の回路遮断が機能しているかどうかを確認するために、どのようにして統合テストを実装すればいいですか?つまり、エンドポイント(この場合はmocked)が遅くなったり、4xxや5xxのようなエラーが返ってきたら?
私は春の雲(装う+ Hystrix)