ssh与mybatis整合之后单元测试出错
ssh整合与mybatis整合后的单元测试,已经能取到待测试的实例,可是还报错,代码如下:
String flowInfoId = "61b28ec86cb4428c9fc1b078214af894";
//AffeBsI affeBsI=(AffeBsI)this.getBean("affeBs");
BillExpendMapper billExpendMapper=(BillExpendMapper)this.getBean("billExpendMapper");
AffeMapper affeMapper=(AffeMapper)this.getBean("affeMapper");
try {
//System.out.println(affeMapper.selectCostDetail("8ad3835f4502cfe4014502d444170003"));
//affeBsI.deleteBill(flowInfoId);
billExpendMapper.selectTravelPeerById("8ad3836d456e725e01456e7609100001");
} catch (Exception e) {
e.printStackTrace();
}
报错截图如下:
配置文件截图如下:
namespace对的上,字段与数据库和实体对的上,<select>的id也与接口名对的上,这是咋回事呢?
------解决方案--------------------
我知道不知道这些有用吗?你要解决错误就从程序知道什么不知道什么入手,人知道不知道无所谓。
你的Junit里面没有spring,单独运行mybatis,你的所有mapper子文件都没有加载。
把mapperLocations属性删除,把mapper的import写到mybatis的主文件里去就可以都通过了。
------解决方案--------------------@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"/spring/spring-mvc-aop.xml",
"/spring/spring-mvc-mybaits.xml",
"/spring/spring-mvc-service.xml",
"/spring/spring-mongo-config.xml" })
楼上正解,只是说单元测试从来不作为spring等的测试,是用来一个一个点的测试,只能说呵呵。
@ContextConfiguration(locations = {"classpath*:*.xml"})