【问题标题】:Generate MailSendException with fake smtp server使用假 smtp 服务器生成 MailSendException
【发布时间】:2013-01-23 04:53:05
【问题描述】:

我需要测试一些使用 Spring MailSender 实例发送电子邮件批处理的组件。当提供的目标地址格式不正确时,方法“send”会引发 MailSendException,例如 myAddressgmail.com(请注意,我并不是假装我的 smtp 服务器知道该地址是否真的存在于目标主机中,只是在谈论结构)。事实上,这就是使用我的真实 smtp 服务器时发生的情况。

为了模拟 smtp 服务器,我尝试了 Dumbster 和 GreenMail,这里出现了问题。这些伪造的 smtp 服务器不检查地址是否格式正确,因此不会抛出 MailSendException。我需要抛出这个异常来测试异常处理。

【问题讨论】:

标签: java spring unit-testing jakarta-mail


【解决方案1】:

使用模拟库,例如 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

【讨论】:

  • 我错过了这种方法。谢谢!
【解决方案2】:

您可以使用 mailnest.io 进行电子邮件测试。在平台中有一个错误模式,您可以打开它来模拟来自服务器的错误响应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2011-07-05
    相关资源
    最近更新 更多