JavaMail单元测试:检查什么

JavaMail单元测试:检查什么,java,jakarta-mail,Java,Jakarta Mail,我想为JavaMail编写单元测试。我已经在使用准备好的outlook server。所以我的问题是什么是编写单元测试的最佳方式:我的意思是:我应该检查什么 检查是否只有我的程序发送了一封信(调用适当的方法,如Transport.send(msg)) 或者检查收件人是否收到了这封信 单元测试是与其他系统无关的简单测试。集成测试可以验证与其他服务器(如Outlook)的合作 在中,您应该模拟邮件服务器并只测试您自己的代码。你只对你的代码负责。为了简单起见,模拟邮件服务器,模拟it行为(mock)并

我想为JavaMail编写单元测试。我已经在使用准备好的outlook server。所以我的问题是什么是编写单元测试的最佳方式:我的意思是:我应该检查什么

  • 检查是否只有我的程序发送了一封信(调用适当的方法,如
    Transport.send(msg)
  • 或者检查收件人是否收到了这封信

  • 单元测试是与其他系统无关的简单测试。集成测试可以验证与其他服务器(如Outlook)的合作

    在中,您应该模拟邮件服务器并只测试您自己的代码。你只对你的代码负责。为了简单起见,模拟邮件服务器,模拟it行为(mock)并测试角落案例

    阅读以下内容:

    对于单元测试(正如MariuszS所说),您不应该连接到真实的系统。看看JavaMail Mock2,它是为使用JavaMail进行单元测试而设计的,不需要真正的系统

    它主要关注IMAP/POP3,但也提供SMTP模拟。 可在maven central购买

    特征

    • 支持imap、imaps、pop3、pop3、smtp、smtps
    • POP3支持:强制转换到POP3文件夹,Folder.getUID(Message msg)
    • IMAP支持:强制转换为IMAPFolder、强制转换为UIDFolder、子文件夹、-Folder.getMessagesById(…)、删除/重命名文件夹、追加消息
    • 支持SMTP:Mock Transport.send()

    目前不支持:IDLE、CONDSTORE等IMAP扩展。。。并强制转换到POP3Message/IMAPMessage,存储侦听器

    您的JavaMail程序将发送和接收邮件吗?你的问题太广泛了,我无法理解。有什么需要测试的?您可以假设
    Transport.send()
    是一种经过良好测试的方法。一种情况是测试服务器不可访问时的情况。但对于这个真正的服务器是不需要的。