JUnit - NullPointerException

186 Views Asked by At
ContactDTO cDto = new ContactDTO();
cDto.setTitle("Mr");
cDto.setFirstName("Pritam");
cDto.setLastName("Mohapatra");
cDto.setTelephone("9439586575");
cDto.setEmail("[email protected]");
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("[email protected]");

//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);

I am getting NullPointerException on Running JUnit Test. What am I doing wrong?
I am using this for email sending.

@Before
public void init() {

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

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

}
  • here is my @before method:
1

There are 1 best solutions below

2
On

I think you triger yourself the NullPointerException because of:

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

This instruction tells Mockito to throw a NullPointerException when you call the sendEmail method on the emailService which is what you do directly after by calling:

emailService.sendEmail(to, subject, body, contentType);