使用junit进行单元测试时报错Invalid bound statement (not found)

前言

开发DAO层接口时如果需要测试,传统做法需要实现Service、Controller再启动项目才能查看效果。
如果使用junit来做单元测试的话可以直接访问DAO层接口,会方便很多。

报错

最近在使用mybatis-plus的项目中测试DAO层接口时报错:

org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): ...

百度了下找到一个解决方法是将mybatis扫描mapper路径修改为完整路径,
但未找到这个问题的实际原因(以后找到原因再更新…)。

解决方案

原始配置(junit测试报错)

mybatis-plus:
  # 如果是放在src/main/java目录下 classpath:/com/yourpackage/*/mapper/*Mapper.xml
  # 如果是放在resource目录 classpath:/mapper/*Mapper.xml
  mapper-locations: classpath:/com/atmoon/*/mapper/xml/*Mapper.xml

修改后配置(补全匹配路径)

mybatis-plus:
  mapper-locations: classpath:/com/atmoon/demo/mapper/xml/*Mapper.xml

可以正常使用了~
单元测试


版权声明:本文为zjh19961213原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。