В моем приложении мне нужно вызвать внешнюю конечную точку, и если она слишком медленная, активируется резервная копия.
Следующий код - это пример того, как выглядит мое приложение:
@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
Как я могу реализовать интеграционный тест, чтобы проверить, работает ли мой разрыв цепи, т. Е. Работает ли моя конечная точка (в данном случае имитируемая) или она возвращает ошибку типа 4xx или 5xx?
Я использую Spring Boot 1.5.3 с Spring Cloud (Feign + Hystrix)