Mockito:等待存根完成

时间:2018-11-19 05:33:38

标签: spring multithreading unit-testing mockito integration-testing

我正在构建一个弹簧集成测试。 在这个测试中,我使用了像这样的模仿:

@MockBean
A mockA;

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

现在,在另一个线程上有另一个bean,该bean不断调用嘲笑A.a()。

结果是一个竞争条件,其中有时 a()将返回1两次。考虑一下,这是非常合理的-另一个bean很快,并且在测试线程到达thenReturn(2)之前成功调用了两次a()。

在让Mockito开始返回值之前,有没有一种好方法可以使Mockito等待存根完成?

或者您能想到的任何其他不错的解决方案?

我不想使用 sleep ,因为它很丑...

编辑: 对嘲笑A的调用来自另一个使用“ A” bean的bean。 例如:

public class B{
    @Autowired
    A a;

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

0 个答案:

没有答案