在用springboot整合mybatis的时候,写完了service层就一个简单的查询,在用junt4测试时发现
报错,空指针异常,但网页运行显示正常。
public class UserServiceTest {
@Autowired
UserService userService;
@Test
public void test(){
System.out.println(userService.queryByName());
}
}
解决办法:
在测试类上面加上
@RunWith(SpringRunner.class)和 @SpringBootTest注解
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
@Autowired
UserService userService;
@Test
public void test(){
System.out.println(userService.queryByName());
}
}
@SpringBootTest注解是SpringBoot自1.4.0版本开始引入的一个用于测试的注解。
@RunWith(SpringRunner.class)在正常情况下测试类是需要@RunWith的,作用是告诉java你这个类通过用什么运行环境运行,例如启动和创建spring的应用上下文。否则你需要为此在启动时写一堆的环境配置代码。你在IDEA里去掉@RunWith仍然能跑是因为在IDEA里识别为一个JUNIT的运行环境,相当于就是一个自识别的RUNWITH环境配置。但在其他IDE里并没有。