Вот ответ о неработающих тестах.
Несколько вещей здесь:
1. Использование CircuitBreakerRegistry.ofDefaults()
каждый раз создает новый экземпляр объекта, так что CircuitBreakerRegistry
объекты, которые вы используете в AbstractCircuitBreakerTest
и HomeService
- это разные экземпляры. Вероятно, вам следует go вернуться к @Autowired
аннотации, но сначала вам нужно определить bean-компонент CircuitBreakerRegistry
следующим образом:
public class CircuitBreakerConfiguration {
@Bean
public CircuitBreakerRegistry circuitBreakerRegistry() {
return CircuitBreakerRegistry.ofDefaults();
}
}
Вы используете
@RunWith(SpringRunner.class)
, но это просто аннотация Junit, и она не инициализирует Spring Context в вашем тесте. Вы автоматически подключаете bean-компонент в своем тесте, поэтому вам нужен Spring Context. Для этого добавьте также аннотацию
@SpringBootTest
. Вы ожидаете, что состояние реестра
BACKEND_A
изменится на
OPEN
после 11 вызовов метода
service.getGreeting()
, но я не вижу возможности использования метода
transitionToOpenState
.