- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我没有什么问题。我创建了 MailService 来发送邮件。当我运行程序时,它起作用了。我在 resources/application.properties
中拥有的电子邮件的所有属性。我正在使用 spring-boot-starter-mail
。
@Service
public class MailService {
private JavaMailSender javaMailSender;
@Autowired
public MailService(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}
public void sendMail(String subject, String messageContent, String recipient)
throws MessagingException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage);
messageHelper.setTo(recipient);
messageHelper.setSubject(subject);
messageHelper.setText(messageContent);
javaMailSender.send(mimeMessage);
}
}
但我不知道如何为它创建测试。我试过这样的事情,我使用 org.jvnet.mock-javamail:mock-javamail
,但它不起作用:
public class MailServiceTest {
private MailService mailService;
@Mock
private JavaMailSender javaMailSender;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mailService = new MailService(javaMailSender);
Mailbox.clearAll();
}
@Test
public void sendMailTest() throws MessagingException, IOException {
String subject = "Some subject";
String body = "Some contents.";
String recipient = "test@test.com";
mailService.sendMail(subject, body, recipient);
List<Message> inbox = Mailbox.get(recipient);
assertTrue(inbox.size() == 1);
assertEquals(subject, inbox.get(0).getSubject());
assertEquals(body, inbox.get(0).getContent());
}
}
最佳答案
您可以测试 MimeMessage
是如何形成的:
public class EmailServiceTest {
private EmailServiceImpl emailServiceImpl;
private JavaMailSender javaMailSender;
private MimeMessage mimeMessage;
@Before
public void before() {
mimeMessage = new MimeMessage((Session)null);
javaMailSender = mock(JavaMailSender.class);
when(javaMailSender.createMimeMessage()).thenReturn(mimeMessage);
emailServiceImpl = new EmailService(javaMailSender);
}
@Test
public void emailTest() {
String recipient = "example@example.com"
EmailRequest request = new EmailRequest();
request.setRecipient(recipient);
emailServiceImpl.send(request);
assertEquals(recipient, mimeMessage.getRecipients(RecipientType.TO)[0].toString());
}
}
关于java - 如何测试JavaMailSender?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43387986/
我在数据库MailTemplate中有一个实体,它有一个用于某些操作的邮件模板。现在,我需要为此模板设置一个值。模板是一个简单的 JSP 页面,其中有几个我想在运行时填充的字段。例如,模板是:“您好,
我正在尝试使用 JavaMailSender 在我的 spring MVC web 应用程序和 Tomcat 7 中发送注册确认电子邮件,但它总是返回 NullPointerException。谁能帮
我正在使用 JavaMailSender 通过我的 gmail 帐户向我的客户发送电子邮件。 在我的 gmail 帐户设置中,我可以将值设置为“将邮件发送为”,以便在我的客户电子邮件中显示我的自定义名
当我使用 JavaMailSender 发送带有附件的电子邮件时,它总是失败并抛出以下异常: org.springframework.mail.MailSendException: Failed me
是否有一种简单/轻巧的方法来向Spring的JavaMailSender添加持久性并使其异步运行? Spring是否为此提供任何“内置”支持?我目前正在使用JMS来查看队列,但是对于手头的任务而言
Autowiring javamailsender 时出现以下错误: Field javaMailSender in com.frs.services.MailService.impl.MailSer
我想使用 javamailsender 向多个人发送带有个性化称呼的邮件。 To : Abc,xyz Mail Content: Hi Abc, ... 我可以向多人发送邮件,但无法找到替换可用于收件
我的测试失败,这是我的测试类。 public class EmailGeneratorServiceTests { @Mock JavaMailSender javaMailSende
我正在尝试使用 spring-boot-starter-mail 配置邮件发送器,但出现 stackoverflow 异常: Failed to instantiate [org.springfram
我正在编写一个网络应用程序,每个用户都可以通过ldap进行身份验证,每个用户都有具有相同登录名和密码的电子邮件,在java中我想用特殊帐户发送电子邮件,但是当我尝试验证任何用户身份验证失败时,但是当我
我们使用以下代码片段从 java 发送电子邮件 javaMailSenderImpl.setHost("somehost"); javaMailSenderImpl.setPort(2
我对 Java spring 相当陌生 - 在尝试发送测试电子邮件时遇到以下错误。 发送电子邮件时出错: org.springframework.mail.MailSendException: Mai
在这个问题上我一直在敲脑袋,我已经厌倦了那种沙哑的声音。 我需要在 Tomcat 平台上配置一个 JavaMail 实例。当然,我不想在 war 文件中硬编码连接参数,所以我一直在尝试建立 JNDI
我创建了一个简单的 spring 应用程序,它向用户发送电子邮件。这似乎与“SimpleMailMessage”完美配合(整个消息都是纯文本)。我想要的是将一些文件作为附件发送,所以我尝试使用 jav
我有一个注入(inject) JavaMailSender 的服务。我的服务对其进行配置并发送邮件。我想拦截原始邮件以确保信息正确。我想在 JUnit 中这样做。 你们会怎么做呢? @Service
我使用 Spring Initializer、嵌入式 Tomcat、Thymeleaf 模板引擎生成了一个 Spring Boot Web 应用程序,并将其打包为可执行 JAR 文件。 使用的技术:
我正在尝试在我的 Spring Web 应用程序中配置 JavaMailSender。订单完成后,它会发送一封工作正常的电子邮件。但是,它选择的发件人电子邮件地址是配置中的地址 (a@gmail.co
这是我的第一个问题,所以我想保持简单。我对 Spring Framework 版本 4.1.8.RELEASE 中的 JavaMailSender 有问题。对于特定的 SMTP,它似乎不会将收件人添加
我正在为我的 spring-boot 应用程序编写简单的邮件发送器。但是我在创建 Bean 时遇到了问题。这是我的 MailSender 类 @Component public class MailS
我似乎无法通过 Spring Boot 的 application.properties 正确配置 Spring 的 JavaMailSender 实现。 以下使用标准 JavaMail API 的代
我是一名优秀的程序员,十分优秀!