Есть ли способ Mock частного вызова метода внутри другого метода в Junit5

Baljinder:

Ниже приведен метод, который я хотел протестировать, но, насколько мне известно, Junit5 не поддерживает PowerMockito. Так есть ли способ, которым я могу смоделировать вызов частного метода внутри другого метода?

public Class MyClass {    


private void sendEmailNotification(Checklist Checklist){
    EmailService emailService = new EmailService();
    BaseDTO esDO = newFolderService.getFolderByUri(ServicesUtils.getDecodedCaseNodeUriFromSelfLink(Checklist.getEs_uri()));
    String esName = esDO.getName();
    SharedInfo sharedInfo = Checklist.getShared_info();
    sharedInfo.setEng_space_name(esName);
    String reviewer = Checklist.getReviewer();
    String ChecklistUri = Checklist.getUri();
    String ChecklistName = Checklist.getName();
    String targetPhase = Checklist.getTarget_phase();
    String comment = Checklist.getComment();
    String submitter = Checklist.getSubmitter();
    String appURL = Checklist.getShared_info().getApp_url();
    String ChecklistLink = buildChecklistURL(appURL, ChecklistUri);
    String emailBodyTemplate;
    String emailSubject;

      emailBodyTemplate = EmailTemplates.getEmailTemplateByName(EmailConstants.TEMPLATE_DELIVERABLE_ACCEPTED_REJECTED_WITH_COMMENTS);
      emailSubject = String.format(EmailConstants.ACCEPT_REJECT_WITH_COMMENTS_SUBJECT, ChecklistName, targetPhase);
      emailBodyTemplate = EmailTemplates.replaceSharedVariable(emailBodyTemplate, sharedInfo);
      emailBodyTemplate = EmailTemplates.replaceVariable(emailBodyTemplate, EmailConstants.VAR_TARGET_PHASE, targetPhase);
      emailBodyTemplate = EmailTemplates.replaceVariable(emailBodyTemplate, EmailConstants.VAR_REVIEWER, reviewer);
      emailBodyTemplate = EmailTemplates.replaceVariable(emailBodyTemplate, EmailConstants.VAR_CHECKLIST_ITEM_NAME, ChecklistName);
      emailBodyTemplate = EmailTemplates.replaceVariable(emailBodyTemplate, EmailConstants.VAR_COMMENT, comment);
      emailBodyTemplate = EmailTemplates.replaceVariable(emailBodyTemplate, EmailConstants.VAR_CHECKLIST_ITEM_URL, ChecklistLink);
    try {
      emailService.sendEmail(submitter, EmailConstants.EMAIL_SENDER, emailSubject, emailBodyTemplate);
    } catch (RuntimeException e) {
      Checklist.addError(messages.get(E_ACCEPT_REJECT_SEND_EMAIL));
    }

}

//Method to be tested

public void method(Checklist checklist){

  /*Some Code*/

  sendEmail(checklist);  /* want to ignore this, as throwing NullPointerException*/

  /*Some Code*/

}}
Абхинаба Чакраборты:

Ты прав. Powermock еще не поддерживает JUnit 5 и есть открытый вопрос в официальном репозитории GitHub здесь .

Похоже, что нет простого способа издеваться над частными методами с помощью Junit5 Runner, если, конечно, вы не решите использовать пользовательский загрузчик классов и выполнять манипуляции с байт-кодом.

Однако вместо насмешки над целым методом я бы предложил вам смоделировать зависимость, которая используется для отправки электронного письма (если только эта зависимость не использует какой-то последний метод).

И если вы даже не можете этого сделать, то лучше всего использовать Junit4 вместо Junit5.

Эта статья взята из Интернета, укажите источник при перепечатке.

Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.

Отредактировано в
0

я говорю два предложения

0обзор
Войти в системуУчаствуйте в комментариях

Статьи по теме

Как внедрить из контекста приложения в mock в Junit5 Mockito?

Jaxb2Marshaller Mock Bean будет иметь нулевое значение JUNIT5

Ответы Junit Mock не возвращаются в случае зацикливания

Как запустить параллельный тест jUnit5 в весеннем ботинке - огуречная версию 5 и более

Eclipse - Источник JUnit5 не найден - Как добавить исходный код JUnit5?

AssertThrows в JUNIT5

Как передать в другой переменной к крюку beforeEach в JUnit5

JUnit5: Как утверждают некоторые свойства объекта с помощью одного вызова Assert?

JUnit5: тестируйте несколько классов без повторения кода

Как установить собственный порядок выполнения тестов для набора тестов в JUnit5?

Есть наборы тестов считаются устаревшими в JUnit5?

Не найдено тестов с средством запуска тестов JUnit5

Как избавиться от правила TemporaryFolder в Junit5

Как протестировать WireMockServer в JUnit5?

Как я могу имитировать класс обслуживания в моем тесте контроллера в Micronaut с помощью JUnit5?

JUnit5 параметрироваться тест с несколькими источника методом

Пакет JUnit5 игнорирует тесты без "Test" в имени класса

Как протестировать сервис JPMS с отказоустойчивостью и Junit5 без создания дополнительного модуля тестирования?

Должны ли тестовые классы Kotlin JUnit5 содержать операторы пакетов?

JUnit5: поле расширения доступа из тестового класса

Как заменить DropwizardAppRule в Junit5

Невозможно запустить тестовый класс "Тесты не найдены с помощью средства выполнения тестов" Junit5 ""

JUnit5: Укажите порядок выполнения нескольких @Nested классов

Как повторить тесты JUnit5 на уровне класса?

Как передать список в качестве параметризованного тестового параметра JUnit5?

Junit5 проверяет, возникло ли исключение во время выполнения

JUnit5: где определяется корень @CsvFileSource и можно ли изменить это определение, чтобы оно относилось к другому каталогу?

Отключить тесты Junit5 на основе разделителя файлов

Настройте JUNIT5 правильно для тестов

TOP список

  1. 1

    Распределение Рэлея Curve_fit на Python

  2. 2

    How to click an array of links in puppeteer?

  3. 3

    В типе Observable <unknown> отсутствуют следующие свойства из типа Promise <any>.

  4. 4

    Как добавить Swagger в веб-API с поддержкой OData, работающий на ASP.NET Core 3.1

  5. 5

    Нарисуйте диаграмму с помощью highchart.js

  6. 6

    无法通过Vue在传单中加载pixiOverlay

  7. 7

    Отчеты Fabric Debug Craslytic: регистрация, отсутствует идентификатор сборки, применить плагин: io.fabric

  8. 8

    Статус HTTP 403 - ожидаемый токен CSRF не найден

  9. 9

    TypeError: store.getState não é uma função. (Em 'store.getState ()', 'store.getState' é indefinido, como posso resolver esse problema?

  10. 10

    ContentDialog.showAsync в универсальном оконном приложении Win 10

  11. 11

    В UICollectionView порядок меняется автоматически

  12. 12

    Merging legends in plotly subplot

  13. 13

    Elasticsearch - Нечеткий поиск не дает предложения

  14. 14

    Bogue étrange datetime.utcnow()

  15. 15

    Объединение таблиц в листе Google - полное соединение

  16. 16

    Single legend for Plotly subplot for line plots created from two data frames in R

  17. 17

    как я могу удалить vue cli 2?

  18. 18

    ViewPager2 мигает / перезагружается при смахивании

  19. 19

    Компилятор не знает о предоставленных методах Trait

  20. 20

    JDBI - В чем разница между @define и @bind в JDBI?

  21. 21

    проблемы с AVG и LIMIT SQL

популярныйтег

файл