长风破浪会有时,直挂云帆济沧海|

粤先生

园龄:10个月粉丝:1关注:2

Spring 项目整合 Junit 一直报 java.lang.NullPointerException空指针异常

1.异常信息

java.lang.NullPointerException: Cannot invoke "com.yue.service.StudentService.changeInfo()" because "this.studentService" is null

2.测试代码

package com.yue.test;

import com.yue.config.DataSourceConfig;
import com.yue.service.StudentService;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;

@SpringJUnitConfig(value = DataSourceConfig.class)
public class TxTest {

    @Autowired
    private StudentService studentService;

    @Test
    public void testTx(){
        studentService.changeInfo();
    }
}

3.问题分析

  • 测试代码是没有问题的;
  • 问题的关键是:Junit不适合在spring项目使用,应该使用Junit5;
  • Spring 整合Junit5 的其中一种方式是:@SpringJUnitConfig(classes = SpringConfiguration.class)。

4.解决方案

  • 删除 import org.junit.Test;, 以及删除pom.xml文件Junit的依赖
  • 在pom.xml文件导入Junit5的依赖包
<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.10.0</version>
</dependency>

本文作者:粤先生

本文链接:https://www.cnblogs.com/magicYue/p/18224742

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   粤先生  阅读(124)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起