我在同一主题上看到了很多疑问。但是,在我的测试用例间歇性失败的情况下,我的情况有所不同。他们大部分时间都在跑步。
因此,用例是,我们有一个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
}
}
谢谢