Резервный метод не вызывается в @HystrixCommand - PullRequest
0 голосов
/ 15 мая 2018

Пытаюсь протестировать мой запасной метод, но, к сожалению, он никогда не вызывается :( Некоторые классы вызывают такой метод:

@Service
@EnableCircuitBreaker
public class ServiceOne
{

    @Inject
    private HystrixService hystrixService;

    public String callCommand(int id, String name)
    {
        return hystrixService.callCommand(id, name);
    }

}

Вот так выглядит мой HystrixService:

@Service
public class HystrixService 
{

    @Inject
    private ServiceTwo serviceTwo;

    @Override
    @HystrixCommand(fallbackMethod = "fallback")
    public String callCommand(final int id, final String name)
    {
        return serviceTwo.callMethod(id, name);
    }


    public String fallback(final int id, final String name)
    {
        return "blablabla";
    }
}

Мой тест:

//class
@Inject
@Spy
private ServiceTwo serviceTwo;

@Inject
@Spy
private ServiceOne serviceOne;


@Test
public void test_fallBack()
{
    doThrow(new RuntimeException()).when(serviceTwo).callMethod(1,
                "name");
    String res = serviceOne.callCommand(1, "name");
}

Почему мой сервис никогда не возвращает заглушку "blablabla", он постоянно выдает исключение RuntimeException и никогда не возвращается к резервному методу. Что я делаю не так?

...