2
ContactDTO cDto = new ContactDTO();
cDto.setTitle("Mr");
cDto.setFirstName("Pritam");
cDto.setLastName("Mohapatra");
cDto.setTelephone("9439586575");
cDto.setEmail("pritam.pritam176@gmail.com");
cDto.setBetreff("test value");
cDto.setAnfrage("test value");

MessageTemplate messageTemplate=new MessageTemplate();
messageTemplate.setBody("Hallo ${name}.<br><br> want to contact ");
messageTemplate.setSubject("Refernce email");
when(emailProperties.getContactMsgKey()).thenReturn("4");
String key = "4";
when(messageTemplateService.getMessageTemplateById(key)).thenReturn(messageTemplate);
when(emailProperties.getAdminTo()).thenReturn("admin@gmail.com");

//String key = "3";
//when(messageTemplateService.getMessageTemplateById(key)).thenReturn(messageTemplate);
String to=emailProperties.getAdminTo();
String subject =messageTemplate.getSubject();
String body =messageTemplate.getBody().replace("${name}", cDto.getFirstName());
String contentType="text/html";
doThrow(NullPointerException.class).when(emailService).sendEmail(to, subject, body, contentType);
emailService.sendEmail(to, subject, body, contentType);

JUnit テストの実行時に NullPointerException が発生しています。私は何を間違っていますか?
これをメール送信に使用しています。

@Before
public void init() {

    emailService = mock(EmailServiceImpl.class);
    messageTemplateService =mock(MessageTemplateService.class);
    emailProperties=mock(EmailProperties.class);

    emailService.setEmailProperties(emailProperties);
    emailService.setMessageTemplateService(messageTemplateService);

}
  • ここに私の @before メソッドがあります:
4

1 に答える 1

1

次の理由で、あなたは自分自身を悩ませていると思いますNullPointerException

doThrow(NullPointerException.class).when(emailService).sendEmail(to, subject, body, contentType);

この命令は、メソッドNullPointerException を呼び出したときにa をスローするように Mockito に指示します。これは、呼び出した直後に行うことです。sendEmailemailService

emailService.sendEmail(to, subject, body, contentType);
于 2015-03-31T10:07:28.830 に答える