Правильный способ высмеять MIMEMessage?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Правильный способ высмеять MIMEMessage?

Сообщение Anonymous »

Я хочу на самом деле проверить поля, установленные в сообщении, такие как тело, тема, отправитель и т. д. Я также пробовал использовать захват аргументов, но это не сработало, и когда я отлаживаю код, сообщение выглядит следующим образом: всегда показывает пустые поля при получении строки javaMailSender.send(message).

Существуют ли передовые методы имитирования MIMEMessage?

//EmailService.java

import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;

@Slf4j
public class EmailService {
private JavaMailSender javaMailSender;

@Autowired
public EmailService(JavaMailSender javaMailSender) {
this.javaMailSender = javaMailSender;
}

public void sendEmail() {
MimeMessage message = javaMailSender.createMimeMessage();
String body = "\n" +
"
This the body
\n" +
"
\n";
try {
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(message, true);
mimeMessageHelper.setSubject("subject");
mimeMessageHelper.setTo("stack@overflow.com");
mimeMessageHelper.setFrom("overflow@stack.com");
mimeMessageHelper.setText(body, true);

javaMailSender.send(message);

} catch (MessagingException e) {
log.error("error");
}`enter code here`
}
}


Ниже приведен тест

//EmailServiceTest.java

import org.junit.Before;
import org.junit.Test;
import org.mockito.ArgumentCaptor;
import org.mockito.Mock;
import org.springframework.mail.javamail.JavaMailSender;

import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.IOException;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;
import static org.mockito.MockitoAnnotations.initMocks;

public class EmailServiceTest {
private EmailService emailService;

@Mock
private JavaMailSender javaMailSender;

@Mock
private MimeMessage message;

@Before
public void setUp() throws IOException {
initMocks(this);

emailService = new EmailService(javaMailSender);
}

@Test
public void sendEmail_sendsEmailWithCorrectContent() throws MessagingException {
ArgumentCaptor mimeMessageArgumentCaptor = ArgumentCaptor.forClass(MimeMessage.class);
when(javaMailSender.createMimeMessage()).thenReturn(message);

doNothing().when(javaMailSender).send(message);

emailService.sendEmail();

verify(javaMailSender, times(1)).send((mimeMessageArgumentCaptor.capture()));
assertEquals("subject", mimeMessageArgumentCaptor.getValue().getSubject());
}

}


Подробнее здесь: https://stackoverflow.com/questions/530 ... imemessage
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»