首页 > 其他分享 >Spring整合JUnit

Spring整合JUnit

时间:2025-02-06 20:31:29浏览次数:3  
标签:整合 Spring public user 测试 Test JUnit 测试方法

Spring整合JUnit

JUnit的概述

JUnit是一个Java语言的单元测试框架。它广泛用于Java开发者编写和执行自动化的单元测试,以确保代码的质量和正确性。

JUnit的核心概念

  • 测试用例(Test Case)
一个测试用例是一个完整的测试单元,它检查特定条件或行为。在JUnit中,测试用例通常是一个方法,使用注解@Test标记。
  • 测试套件(Test Suite)
测试套件是一组测试用例或其他的测试套件的集合。在JUnit中,可以使用@Runwith和@Suite.SuiteClasses注解来定义测试套件。
  • 断言(Assertion)
断言用于验证期望值与实际值是否相等。JUnit提供了一系列的断言方法,如assertEquals()、assertTrue()等。
  • 注解(Annoation)
JUnit使用注解来标记测试方法、测试套件、测试前的设置和测试后的清理等。常见的注解如@Test、@Before、@After、@BeforeClass、@AfterClass等。

JUnit的常用注解

注解 说明
@Test 标记一个方法为测试方法
@Before 标记一个方法,它会在每个测试方法执行之前执行
@After 标记一个方法,它会在每个测试方法执行之后执行
@BeforeClass 标记一个静态方法,它会在所有测试方法执行之前执行一次
@AfterClass 标记一个静态方法,他会在所有测试方法执行之后执行一次
@Ignore 标记一个测试方法或测试类被忽略,不会执行

JUnit的基本使用

  1. 添加JUnit的依赖
  2. 编写测试类
  3. 执行测试

JUnit的版本履历

  • JUnit3(1998年发布):基础版本,简单但耦合度高
  • JUnit4(2006年发布):引入注解,简化测试代码,广泛使用但缺乏现代Java特性支持。
  • JUnit5(2017年发布):现代化版本,支持新特性,模块化和可扩展性更好,兼容旧版本。

Spring整合JUnit5

引入相关依赖

    <dependencies>
        <!--spring context依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.11</version>
        </dependency>    
        <!--spring对junit的支持相关依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>6.0.11</version>
        </dependency>
        <!--junit5测试-->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.9.0</version>
        </dependency>
    </dependencies>

添加配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

    <!--    开启组件扫描-->
    <context:component-scan base-package="com.shen.junit"></context:component-scan>

</beans>

一个注册到容器的实体类

/**
 * 用户实体类
 */
@Component
public class User {
    public void printHello() {
        System.out.println("hello");
    }
}

测试类

由于与Spring集成,测试类的user属性可以依赖注入

//另一种方式
//@ExtendWith(SpringExtension.class)
//@ContextConfiguration("classpath:bean.xml")

//第一种方式推荐
@SpringJUnitConfig(locations = "classpath:bean.xml")
public class SpringTestJunit5 {

    private final User user;

    @Autowired
    public SpringTestJunit5(User user) {
        this.user = user;
    }

    @Test
    public void testUser() {
        user.printHello();
    }
}

Spring整合JUnit4

由于实体类、配置文件与整合JUnit5一致,这里只展示引入依赖和测试类

引入相关依赖

    <dependencies>
        <!--spring context依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>6.0.11</version>
        </dependency>    
        <!--spring对junit的支持相关依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>6.0.11</version>
        </dependency>
        <!-- junit4测试 -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
        </dependency>
    </dependencies>

测试类

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:bean.xml")
public class SpringTestJunit4 {
    @Autowired
    private User user;

    @Test
    public void testUser() {
        user.printHello();
    }
}

参考资料

https://junit.org/junit5/

标签:整合,Spring,public,user,测试,Test,JUnit,测试方法
From: https://www.cnblogs.com/shenStudy/p/18701638

相关文章