Я строю весенний интеграционный тест.В этом тесте я использую 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());
}
}