Разыскивается, но не вызывается: на самом деле, с этим макетом не было никаких взаимодействий - периодически прерывается - PullRequest
0 голосов
/ 08 июля 2019

Я видел много вопросов на ту же тему.Но мой отличается в том, что мои контрольные примеры периодически терпят неудачу.Большую часть времени они запускаются.

Таким образом, вариант использования состоит в том, что у нас есть один 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
     }
}

Спасибо

...