阅读量:0
在Spring Boot中,可以使用Mockito来模拟邮件发送功能,并使用JUnit来编写测试用例。下面是一个简单的示例:
首先,在Spring Boot项目中添加相关依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>3.11.0</version> <scope>test</scope> </dependency>
然后编写一个邮件发送服务:
@Service public class EmailService { @Autowired private JavaMailSender javaMailSender; public void sendEmail(String to, String subject, String body) { SimpleMailMessage message = new SimpleMailMessage(); message.setTo(to); message.setSubject(subject); message.setText(body); javaMailSender.send(message); } }
接下来编写一个测试用例:
@RunWith(MockitoJUnitRunner.class) public class EmailServiceTest { @Mock private JavaMailSender javaMailSender; @InjectMocks private EmailService emailService; @Test public void testSendEmail() { emailService.sendEmail("test@example.com", "Test Subject", "Test Body"); ArgumentCaptor<SimpleMailMessage> captor = ArgumentCaptor.forClass(SimpleMailMessage.class); verify(javaMailSender).send(captor.capture()); SimpleMailMessage message = captor.getValue(); assertEquals("test@example.com", message.getTo()[0]); assertEquals("Test Subject", message.getSubject()); assertEquals("Test Body", message.getText()); } }
在上面的测试用例中,我们使用Mockito来模拟JavaMailSender并验证发送邮件的行为。通过ArgumentCaptor来捕获发送的邮件内容,并进行断言验证。
这样就可以使用JUnit来测试邮件发送功能了。