Я видел много вопросов на ту же тему.Но мой отличается в том, что мои контрольные примеры периодически терпят неудачу.Большую часть времени они запускаются.
Таким образом, вариант использования состоит в том, что у нас есть один QuartzJob, и в этом QuartzJob мы создаем вызов API REST и одну реализацию JobListener с переопределенным методом jobWasExecuted (...).В этом методе мы проверяем, были ли какие-либо ошибки при выполнении задания или нет.Если это так, то мы вызываем один API-интерфейс emailService, который отправляет почту, но ничего не делает.
Что не так?
В тесте мы выполняем оба вызова 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
}
}
Спасибо