无需创建另一个我可以注入(inject)的类。是否可以模拟 javax.mail.Transport
,以便我可以在 Java EE 7 上对 Transport.send()
方法进行一些模拟测试?
最佳答案
由于 Dumbster 没有当前正在运行的 Maven Central 工件,因此根据 Bill Shanon 的解决方案,我使用了 GreenMail。
然后我使用了以下代码:
final GreenMail mailServer = new GreenMail();
mailServer.start();
final Properties mailSessionProperties = new Properties();
mailSessionProperties.put("mail.smtp.port", String.valueOf(mailServer.getSmtp().getPort()));
final javax.mail.Session mailSession = javax.mail.Session.getInstance(mailSessionProperties);
testObject.setMailSession(mailSession);
这样,即使 testObject
有静态调用 Transport.send(message)
,也不需要更改。
关于java - 模拟 javax.mail.Transport,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17457386/