我想为javaMail写入单元测试。我已经使用了准备的Outlook服务器。所以我的问题是写入单元测试的最佳方法:我的意思是:我该怎么办?

  1. 检查只有我的程序发送一封信(称为Transport.send(msg)等相应的方法)
  2. 或检查号码是否由收件人收到?
有帮助吗?

解决方案

单元测试是简单的测试,无需与其他系统相关。集成测试可以验证与Outlook这样的其他服务器的合作。

单元test 您应该模拟邮件服务器并仅测试您自己的代码。您只对您的代码负责。对于简单的模拟邮件服务器,模拟IT行为(模拟)和测试角箱。

阅读:单元测试和集成之间的区别测试?

其他提示

for unittests(正如Mariuszs所说的)你不应该连接到真实的系统。看看JavaMail Mock2 https://github.com/salyh/javamail-mock2 ,这旨在与JavaMail做出unittests,不需要真实的系统。

它主要专注于IMAP / POP3,但SMTP模拟也可用。 它在Maven Central提供。

功能

  • 支持IMAP,IMAPS,POP3,POP3S,SMTP,SMTPS
  • 支持pop3:cast to pop3folder,folder.getuid(message msg) 支持IMAP的
  • 为imapfolder投用,演义为Uidfolder,subfolders,-folder.getmessagesbyuid(...),删除/重命名文件夹,附加消息
  • 支持smtp:mock transport.send()

暂时不支持:imap扩展像空闲,indstore,......并投射到pop3message / imapmessage,商店侦听器

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top