项目正常单元测试错误 java.lang.IllegalArgumentException: Mapped Statements collection does not contain value
使用Junit单元测试时发现问题,项目能正常运行,但是单元测试一直报错如下
java.lang.IllegalArgumentException: Mapped Statements collection does not contain value for com.ss.tmall.mapper.PropertyMapper.selectByPrimaryKey
求助度娘查找
1.namespace写错,或者各种检查配置文件
2.jdk降级1.8降级1.7
3.spring升级4.2,junit升级
如上三种方法都没有解决这个问题
后来怀疑是 ,如下这个配置作祟,
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
为什么呢?是java下的mapper包和resource下的mapper包重名,会默认扫描java下的mapper包。目录结构如下,那将resource路径下的mapper包改为imapper,同时修改spring-Mybatis配置文件 appliciationContext.xml 为imapper
再次执行propertymapper 单元测试,成功