java - JUnit - 空指针异常

标签 java junit nullpointerexception emokit

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 方法:

最佳答案

我认为您触发了 NullPointerException 因为:

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

当您调用 emailService 上的 sendEmail 方法时,这条指令告诉 Mockito 抛出一个 NullPointerException,这是您在调用之后直接执行的操作:

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

关于java - JUnit - 空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29361792/

相关文章:

java - 过滤代码使用实时java应用程序进行测试

android - 使用 Robolectric 测试 PopUpMenu

java - AssertJ 断言抛出异常或结果

Java - 引用 HashMap 中的对象时出现 NullPointerException

Java Lejos 抛出 nullpointerException

java - 如何覆盖 google.Truth 中测试的默认失败消息?

java - Spring MVC : How to access a modelAndView XML object in Javascript ?

java - 如何在 Android 的 TimePickerDialog 中设置自定义分钟间隔

java.lang.IllegalStateException : Could not load CacheAwareContextLoaderDelegate unit test spring [Java]

java - setBackgroundDrawable 在 android 中给出 nullpointerexception