1

SpringMailSenderインスタンスを使用して電子メールバッチを送信するコンポーネントをテストする必要があります。メソッド"send"は、myAddressgmail.comのように、提供された宛先アドレスが適切に形成されていない場合にMailSendExceptionをスローします(構造について話しているだけで、SMTPサーバーがアドレスが宛先ホストに本当に存在するかどうかを知っているふりをしていないことに注意してください)。実際、これは私の実際のSMTPサーバーを使用するときに起こることです。

SMTPサーバーをモックするために、DumbsterとGreenMailを試しましたが、ここに問題が表示されます。これらの偽のSMTPサーバーは、アドレスが整形式であるかどうかをチェックしないため、MailSendExceptionはスローされません。例外処理をテストするには、この例外をスローする必要があります。

4

2 に答える 2

2

MockitoEasyMockなどのモックライブラリを使用します。

次に、次のようなことを行うことができます。

MailSender mockSender = mock(MailSender.class);
YourSMTPServer server = new YourSMTPServer(mockSender);

when(mockSender.send(...)).thenThrow(new MailSendException(...));

// then invoke the method on your server that calls MailSender.send() and
// assert it does what you want it to do when an exception is encountered
于 2013-02-07T16:25:54.907 に答える
0

メールのテストには mailnest.io を使用できます。プラットフォームには、サーバーからのエラー応答を模擬するために切り替えることができるエラー モードがあります。

于 2020-08-10T10:55:31.300 に答える