模拟 javax.mail.Transport

Arc*_*ano 4 java jakarta-mail java-ee-7

无需创建我可以注入的另一个类。是否可以模拟javax.mail.Transport以便我可以Transport.send()在 Java EE 7 上对该方法进行一些模拟测试?

Arc*_*ano 7

跟进 Bill Shanon 的解决方案,因为 Dumbster 没有当前可用的 Maven Central 工件,我使用了 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);
Run Code Online (Sandbox Code Playgroud)

testObject即使它有一个静态调用,这种方式也不需要改变Transport.send(message)