SpringBoot测试类注入Bean失败的原因及分析

 更新时间:2024年09月22日 10:04:56   作者:苍煜  
SpringBoot 2.2版本前后测试类有所变化,2.2版本之后使用JUnit 5,导入注解@SpringBootTest和@Test来自junit.jupiter.api包;而2.2版本之前使用JUnit 4,需要额外导入@RunWith注解来自junit.runner包,无论哪个版本,都需确保测试类和启动类的包名一致

针对SpringBoot的测试类,2.2版本之前和之后是不一样的。

2.2版本之后

导包pom.xml

添加test依赖

<!-- starter-test:junit + spring-test + mockito -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

注解

  • @SpringBootTest—import org.springframework.boot.test.context.SpringBootTest;
  • @Test—import org.junit.jupiter.api.Test;

测试

import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * @author wangkanglu
 * @version 1.0
 * @description
 * @date 2024-07-07 11:32
 */
@SpringBootTest
public class TestMain {

    @Test
    public void test1(){
        System.out.println("-----");
    }
}

2.2版本之前

导包pom.xml

添加test依赖

<!-- starter-test:junit + spring-test + mockito -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

注解

  • @SpringBootTest—import org.springframework.boot.test.context.SpringBootTest;
  • @RunWith(SpringRunner.class)—import org.junit.runner.RunWith;
  • @Test—import org.junit.Test;

测试

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * @author wangkanglu
 * @version 1.0
 * @description
 * @date 2024-07-07 11:32
 */
@SpringBootTest
@RunWith(SpringRunner.class)
public class TestMain {

    @Test
    public void test1(){
        System.out.println("-----");
    }
}

注意包路径需要一致

注意测试类的包名和启动类的包名一定要一致,否则扫描不到bean对象会报空异常,如下图:

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • java map中相同的key保存多个value值方式

    java map中相同的key保存多个value值方式

    这篇文章主要介绍了java map中相同的key保存多个value值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • 23种设计模式(17)java命令模式

    23种设计模式(17)java命令模式

    这篇文章主要为大家详细介绍了23种设计模式之java命令模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java网络编程基础教程之Socket入门实例

    Java网络编程基础教程之Socket入门实例

    这篇文章主要介绍了Java网络编程基础教程之Socket入门实例,本文讲解了创建Socket、Socket发送数据、Socket读取数据、关闭Socket等内容,都是最基础的知识点,需要的朋友可以参考下
    2014-09-09
  • mybatis Example的Criteria用法:or与isNull详解

    mybatis Example的Criteria用法:or与isNull详解

    这篇文章主要介绍了mybatis Example的Criteria用法:or与isNull详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • Spring如何配置文件动态读取pom.xml中的属性

    Spring如何配置文件动态读取pom.xml中的属性

    在项目开发中,经常需要将pom.xml中的属性动态传递给Spring配置文件,实现这一需求,可通过Maven的资源过滤功能,配置占位符替换,具体方法包括:在pom.xml中启用filtering,然后在Spring配置文件中通过${property}方式引用属性
    2024-10-10
  • RabbitMQ如何直接查看队列中消息的内容

    RabbitMQ如何直接查看队列中消息的内容

    RabbitMQ是一款基于AMQP协议的开源消息中间件,支持异步通信、消息路由和可靠性保障,这篇文章主要介绍了RabbitMQ如何直接查看队列中消息的内容的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2026-01-01
  • Java 配置log4j日志文件路径 (附-获取当前类路径的多种操作)

    Java 配置log4j日志文件路径 (附-获取当前类路径的多种操作)

    这篇文章主要介绍了Java 配置log4j日志文件路径 (附-获取当前类路径的多种操作),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • SpringBoot 配置多个JdbcTemplate的实现步骤

    SpringBoot 配置多个JdbcTemplate的实现步骤

    本文介绍了在SpringBoot中配置多个JdbcTemplate的方法,包括创建项目、添加依赖、配置数据源和多个JdbcTemplate的使用,感兴趣的可以了解一下
    2024-11-11
  • JDK安装与配置超级详细教程(包含二个或多个JDK的同时安装)

    JDK安装与配置超级详细教程(包含二个或多个JDK的同时安装)

    这篇文章主要给大家介绍了关于JDK安装与配置(包含二个或多个JDK的同时安装)的相关资料,对于Java学习者来说,一台电脑拿到手肯定要配置JDK,但是对于新手来说还是容易出错,需要的朋友可以参考下
    2023-10-10
  • j2ee之AJAX二级联动效果

    j2ee之AJAX二级联动效果

    这篇文章主要为大家详细介绍了j2ee之AJAX二级联动效果的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08

最新评论