51Testing软件测试论坛

标题: mapper正常运行没问题,运行JUnit测试时,mapper就报错了 [打印本页]

作者: 测试积点老人    时间: 2021-7-15 11:39
标题: mapper正常运行没问题,运行JUnit测试时,mapper就报错了

Spring boot + mybatis-plus项目,正常运行时没问题,运行JUnit测试时,mapper就报错了,不能用,报NullpointerException。
看了网上很多都说是少了@RunWith(SpringJUnit4ClassRunner.class),但是我加上了还是一样

但是我正常跑项目是没问题的,就是Junit会报错,就不知道为什么

单元测试类:

  1. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  2. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  3. import com.howie.Application;
  4. import com.howie.entity.TestEntity;
  5. import com.howie.mapper.TestMapper;
  6. import org.junit.jupiter.api.Test;
  7. import org.junit.runner.RunWith;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.beans.factory.annotation.Value;
  10. import org.springframework.boot.test.context.SpringBootTest;
  11. import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
  12. @RunWith(SpringJUnit4ClassRunner.class)
  13. @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
  14. public class SpringBootTestUnit {
  15.     @Autowired
  16.     TestMapper mapper;

  17.     @Test
  18.     public void test() {
  19.         String testId = "test1";
  20.         System.out.println("Junit test...");
  21.         LambdaQueryWrapper<TestEntity> wrapper = Wrappers.lambdaQuery();
  22.         wrapper.eq(TestEntity::testId, testId);
  23.         mapper.select(wrapper);
  24.     }
  25. }
复制代码

报错信息如下:

  1. org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
  2. ### Error querying database.  Cause: java.lang.NullPointerException
  3. ### The error may exist in com/howie/mapper/TestMapper.java (best guess)
  4. ### The error may involve com.howie.mapper.TestMapper.selectOne
  5. ### The error occurred while executing a query
  6. ### Cause: java.lang.NullPointerException
复制代码



作者: 海海豚    时间: 2021-7-16 09:25
https://www.cnblogs.com/fanwenhao/p/10020252.html  参考下这个
作者: qqq911    时间: 2021-7-16 10:43
环境配置检查下
作者: bellas    时间: 2021-7-16 11:00
网上找下吧
作者: litingting0214    时间: 2021-7-16 14:49
可能junit的运行时的classpath信息与普通运行方式不同,于是将classpath修改为classpth*,使其从多个classpath中加载mapper文件
作者: 郭小贱    时间: 2021-7-16 14:49
这个倒不清楚什么原因了,插个眼,看看大佬答案。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2