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を使用してプライベートメソッドをモックする簡単な方法はないようです。

ただし、メソッド全体をモックするのではなく、メールの送信に使用される依存関係をモックすることをお勧めします(その依存関係が最終的なメソッドを使用している場合を除く)。

それができない場合でも、Junit5ではなくJunit4を使用するのが最善の方法です。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

JUnit:別のメソッド内で呼び出されたメソッドをモックします

分類Dev

別のメソッドからクラスメソッドを呼び出す方法はありますか?

分類Dev

PowerMockitoは、モックされたプライベートメソッドではなく実際のメソッドを呼び出しています

分類Dev

メソッド内でプライベートメソッドを呼び出した場合、テストメソッドをモックまたは準備するにはどうすればよいですか?

分類Dev

.NETで静的メソッドを呼び出したクラスを判別する方法はありますか?

分類Dev

プライベートメソッドを呼び出す方法はありますか?

分類Dev

あるメソッドから別のメソッドにパラメータを呼び出す方法は?

分類Dev

クラスメソッド内でイベントリスナーを使用して、未定義を返す別のクラスメソッドを呼び出す

分類Dev

Mockito:別のメソッド内で呼び出されたメソッドをモックする方法

分類Dev

Mockito:別のメソッド内で呼び出されたメソッドをモックする方法

分類Dev

C#でメソッドが呼び出されるたびに別のメソッドを呼び出す一般的な方法はありますか?

分類Dev

Typescriptで、イベントハンドラーとして呼び出される同じクラスの別のメソッドからクラスメソッドを呼び出すにはどうすればよいですか?

分類Dev

Rubyの別のクラスからメソッドを呼び出す方法はありますか?

分類Dev

.netの別のアセンブリのプライベート静的型(またはクラス)でメソッドを呼び出す方法は?

分類Dev

別の.javaファイルにある別のクラスからメソッドを呼び出す方法は?

分類Dev

別のメソッドを呼び出すパラメーターを使用してメソッドをモックする方法は?

分類Dev

あるクラスのメソッドにアクセスし、別のクラスのメソッドをフラッター(dart)で呼び出す方法

分類Dev

VueJs this.methodは関数ではありませんか?Vuejsの別のメソッド内でメソッドを呼び出す方法は?

分類Dev

OOP: 同じパラメーターでプライベート メソッドを呼び出し続けるパブリック メソッドを呼び出すのはなぜですか?

分類Dev

パブリックメソッドの呼び出しからプライベートメソッドにIAppアプリ変数を渡します

分類Dev

インナークラス内のプライベートクラス内のプライベートメソッドを呼び出します

分類Dev

別のメソッドを呼び出すメソッドを呼び出すJUnitはnullPointerExceptionを返します

分類Dev

別のクラスにインポートする別のメソッドを呼び出す方法は?

分類Dev

Powermockを使用してプライベートメソッドをモックするときに実際のメソッドを呼び出すのはなぜですか?

分類Dev

Laravelの同じコントローラー内で別のメソッドを呼び出した後に残りのコードを実行する方法は?

分類Dev

Javaで別のクラスのメインメソッドを呼び出して、呼び出し元のコードに戻ることは可能ですか?

分類Dev

タイプスクリプトの別のプライベートメソッドの関数内のプライベートメソッド呼び出しのスコープを解決する

分類Dev

Pythonでは、親クラスから子クラスのメソッドオーバーライドを呼び出す方法はありますか?

分類Dev

Junit5は静的メソッドをモックします

Related 関連記事

  1. 1

    JUnit:別のメソッド内で呼び出されたメソッドをモックします

  2. 2

    別のメソッドからクラスメソッドを呼び出す方法はありますか?

  3. 3

    PowerMockitoは、モックされたプライベートメソッドではなく実際のメソッドを呼び出しています

  4. 4

    メソッド内でプライベートメソッドを呼び出した場合、テストメソッドをモックまたは準備するにはどうすればよいですか?

  5. 5

    .NETで静的メソッドを呼び出したクラスを判別する方法はありますか?

  6. 6

    プライベートメソッドを呼び出す方法はありますか?

  7. 7

    あるメソッドから別のメソッドにパラメータを呼び出す方法は?

  8. 8

    クラスメソッド内でイベントリスナーを使用して、未定義を返す別のクラスメソッドを呼び出す

  9. 9

    Mockito:別のメソッド内で呼び出されたメソッドをモックする方法

  10. 10

    Mockito:別のメソッド内で呼び出されたメソッドをモックする方法

  11. 11

    C#でメソッドが呼び出されるたびに別のメソッドを呼び出す一般的な方法はありますか?

  12. 12

    Typescriptで、イベントハンドラーとして呼び出される同じクラスの別のメソッドからクラスメソッドを呼び出すにはどうすればよいですか?

  13. 13

    Rubyの別のクラスからメソッドを呼び出す方法はありますか?

  14. 14

    .netの別のアセンブリのプライベート静的型(またはクラス)でメソッドを呼び出す方法は?

  15. 15

    別の.javaファイルにある別のクラスからメソッドを呼び出す方法は?

  16. 16

    別のメソッドを呼び出すパラメーターを使用してメソッドをモックする方法は?

  17. 17

    あるクラスのメソッドにアクセスし、別のクラスのメソッドをフラッター(dart)で呼び出す方法

  18. 18

    VueJs this.methodは関数ではありませんか?Vuejsの別のメソッド内でメソッドを呼び出す方法は?

  19. 19

    OOP: 同じパラメーターでプライベート メソッドを呼び出し続けるパブリック メソッドを呼び出すのはなぜですか?

  20. 20

    パブリックメソッドの呼び出しからプライベートメソッドにIAppアプリ変数を渡します

  21. 21

    インナークラス内のプライベートクラス内のプライベートメソッドを呼び出します

  22. 22

    別のメソッドを呼び出すメソッドを呼び出すJUnitはnullPointerExceptionを返します

  23. 23

    別のクラスにインポートする別のメソッドを呼び出す方法は?

  24. 24

    Powermockを使用してプライベートメソッドをモックするときに実際のメソッドを呼び出すのはなぜですか?

  25. 25

    Laravelの同じコントローラー内で別のメソッドを呼び出した後に残りのコードを実行する方法は?

  26. 26

    Javaで別のクラスのメインメソッドを呼び出して、呼び出し元のコードに戻ることは可能ですか?

  27. 27

    タイプスクリプトの別のプライベートメソッドの関数内のプライベートメソッド呼び出しのスコープを解決する

  28. 28

    Pythonでは、親クラスから子クラスのメソッドオーバーライドを呼び出す方法はありますか?

  29. 29

    Junit5は静的メソッドをモックします

ホットタグ

アーカイブ