小编leo*_*rdo的帖子

如何实施集成测试以检查我的断路器后备是否被调用?

在我的应用程序中,我需要调用外部端点,如果速度太慢,则会激活回退.

以下代码是我的应用程序的示例:

@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);
}
Run Code Online (Sandbox Code Playgroud)

它的后备实施:

@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);
    }
Run Code Online (Sandbox Code Playgroud)

此外,配置的断路器超时: hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 5000

如何实现集成测试以检查我的电路中断是否正常工作,即,如果我的端点(在这种情况下是模拟的)很慢或者它是否返回了像4xx或5xx这样的错误?

我正在使用带有Spring Cloud的Spring Boot 1.5.3(Feign + Hystrix)

testing spring-boot hystrix spring-cloud-feign spring-cloud-netflix

7
推荐指数
1
解决办法
755
查看次数