1

我需要测试一些使用 Spring MailSender 实例发送电子邮件批处理的组件。当提供的目标地址格式不正确时,方法“send”会引发 MailSendException,例如 myAddressgmail.com(请注意,我并不是假装我的 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 回答