java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot测试类注入Bean失败

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

作者:苍煜

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>

注解

测试

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>

注解

测试

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对象会报空异常,如下图:

总结

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

您可能感兴趣的文章:
阅读全文