blob: 1f8a4598a5ee33f8ff7ba7225f7da544b67e6970 [file] [log] [blame]
夜雨声烦e6bf1de2025-04-15 18:34:54 +08001package com.example.g8backend.util;
2
3import org.junit.jupiter.api.Test;
4import org.junit.jupiter.api.extension.ExtendWith;
5import org.mockito.ArgumentCaptor;
6import org.mockito.InjectMocks;
7import org.mockito.Mock;
8import org.mockito.junit.jupiter.MockitoExtension;
9import org.springframework.mail.SimpleMailMessage;
10import org.springframework.mail.javamail.JavaMailSender;
11
12import static org.assertj.core.api.Assertions.assertThat;
13import static org.mockito.Mockito.verify;
14
15@ExtendWith(MockitoExtension.class)
16class MailUtilTest {
17
18 @Mock
19 private JavaMailSender javaMailSender;
20
21 @InjectMocks
22 private mailUtil mailUtil; // 注意类名应与原类一致(原类名可能应改为大写,此处保持原样)
23
24 @Test
25 void sendMail_ShouldSendEmailWithCorrectParameters() {
26 // 准备测试数据
27 String to = "xxi13552467509@163.com";
28 String subject = "Test Subject";
29 String messageText = "Hello, this is a test email.";
30
31 // 调用被测试方法
32 mailUtil.sendMail(to, subject, messageText);
33
34 // 捕获传递给send方法的参数
35 ArgumentCaptor<SimpleMailMessage> argumentCaptor = ArgumentCaptor.forClass(SimpleMailMessage.class);
36 verify(javaMailSender).send(argumentCaptor.capture());
37
38 // 获取捕获的邮件对象
39 SimpleMailMessage sentMail = argumentCaptor.getValue();
40
41 // 验证邮件内容是否正确
42 assertThat(sentMail.getFrom()).isEqualTo("2038234690@qq.com");
43 assertThat(sentMail.getTo()).containsExactly(to);
44 assertThat(sentMail.getSubject()).isEqualTo(subject);
45 assertThat(sentMail.getText()).isEqualTo(messageText);
46 }
47}