博主学习了SpringBoot单元测试之后想做一个小的案例,在整合单元测试的时候出现了一个灰常严肃的问题,也是我的老壳不长记性吧,刚学完就忘记了。
现在就来探讨一下问题所在吧。
public class test {
@Autowired
private UserService userServiceImpl;
@Test
public void selUser(){
List<User> users = userServiceImpl.selUserAll();
for (User user:users){
System.out.println(user);
}
}
}
当运行selUser()方法的时候,报NullPointerException异常。检查完代码后发现并没有错误,我觉得应该是我的bean没有注入,我打印出来发现为null。查找了API文档后,我发现我的测试类少写了两个注解,@RunWith和@SpringBootTest。
相当于我只是写了一个普通的类,并没有交给SpringBoot,你这么傻,如来佛祖都救不了你了孩子。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = TemperaturegunApplication.class)
public class test {
@Autowired
private UserService userServiceImpl;
@Test
public void selUser(){
List<User> users = userServiceImpl.selUserAll();
for (User user:users){
System.out.println(user);
}
}
}
加上这两个单元测试的注解后,问题解决。