Mockito: дождитесь окончания окурка - PullRequest
0 голосов
/ 19 ноября 2018

Я строю весенний интеграционный тест.В этом тесте я использую mockito следующим образом:

@MockBean
A mockA;

public void test(){
    when(mockA.a()).thenReturn(1).thenReturn(2);
    // Do stuff...
}

Теперь в другом потоке есть другой бин, который постоянно вызывает mockA.a ().

В результате возникает условие гонки, в котором иногда a () будет возвращать 1 дважды.Размышляя об этом, это вполне разумно - другой компонент работает быстро и успешно вызывает дважды () до того, как тестовый поток прибывает в thenReturn (2).

Есть ли хороший способ заставить Mockito ждать, показаглушить до конца, прежде чем он начнет возвращать значения?

Или любое другое хорошее решение, о котором вы можете подумать?

Я не хочу использовать для этого sleep уродливо ...

РЕДАКТИРОВАТЬ: Вызов mockA из другого компонента, который использует компонент "A".Например:

public class B{
    @Autowired
    A a;

    @PostConstruct
    public void method(){ // This method will
        System.out.println(a.a());
    }
}
...