希望但不被调用:实际上,此模拟的交互为零-间歇性失败

时间:2019-07-08 09:46:25

标签: java spring mockito spring-test

我在同一主题上看到了很多疑问。但是,在我的测试用例间歇性失败的情况下,我的情况有所不同。他们大部分时间都在跑步。

因此,用例是,我们有一个QuartzJob,在该QuartzJob中,我们正在进行REST api调用,并重写了一个Jobjob实现,其中JobWasExecuted(...)方法被覆盖。在这种方法中,我们正在检查执行作业时是否有任何错误。如果存在,那么我们正在调用一个emailService api,该api正在发送邮件,而其他功能则无济于事。

怎么了?

在测试中,我们同时模拟了restTemplate调用和emailService,并且两者都具有 verify ,但是emailService verify 间歇性地失败了。

我有@DirtiesContext(classMode = DirtiesContext.ClassMode。 AFTER_EACH_TEST_METHOD

以下面的代码为例,不实际。

class TriggerApiForJobTemplate extends QuartzJobBean{
   @OverRide 
   public void executeInternal(...) {
      //one restTemplate making on REST api call.
   }
}


class JobExecutionExceptionListener implements JobListener {
     @OverRide 
     public void jobWasExecuted(...){
        //checking if there was any exception then call emailService
     }
}

测试类

class MyTest {
// MockBean of RestTemplate and EmailService

     testMethod() {
        //setting when on restTemplate
        // verify on restTemplate
        // verify on EmailService
     }
}

谢谢

0 个答案:

没有答案