关于在SpringBoot中遇到Junit测试遇到的空指针问题解决
@Autowired
private EmpService empService;
@Autowired(required = false)
private EmpMapper empMapper;
@Test
public void test() {
System.out.println(empMapper.findEmps());
}
先用Service测试不通后试着拿Dao测试,但Dao也测不通就觉得不是代码的问题,是测试类的问题
参考了很多的加注解的办法@RunWith(SpringRunner.class)
@SpringBootTest
大多数是加这两个注解和测试类名要和启动类名一样
我的yml文件里是这样的
mybatis: mapper-locations: classpath:mapping/*.xml type-aliases-package: com.qfedu.po
我并没有用xml的方式来做,用的纯注解的方式很简单的一个select * 。
为了不报错在classpath文件下创了一个空的mapping包
试了很多办法后发现了解决办法:
在测试类顶部加@MapperScan(basePackages = {“com.qfedu.mapper”})
其中basePackages里为当前Dao层,我这里Dao层叫做mapper。
这个注解加了之后问题得到了解决