Spring Boot 单元测试

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


    一Spring Boot单元测试概述

    在实际开发中每当完成一个功能接口或业务方法的编写后通常都会借助单元测试验证该功能是否正确。Spring Boot对项目的单元测试提供了很好的支持在使用时需要提前在项目的pom.xml文件中添加spring-boot-starter-test测试依赖启动器可以通过相关注解实现单元测试。

    二对项目HelloWorld01进行单元测试

    1、添加测试依赖启动器和单元测试

    打开先前创建的项目如未创建请参考《Maven方式构建Spring Boot项目》 - HelloWorld01
    在这里插入图片描述修改pom.xml文件添加依赖
    在这里插入图片描述

    添加内容如下

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

    刷新项目依赖
    在这里插入图片描述
    如果使用Spring Initializr方式构建Spring Boot项目则会自动加入测试依赖启动器。大家可以查看上一讲我们创建的HelloWorld02项目。

    2、创建测试类与测试方法

    在src/test/java里创建net.army.boot包
    在这里插入图片描述
    在net.army.boot包里创建测试类TestHelloWorld01
    在这里插入图片描述

    给测试类添加测试启动器注解与Spring Boot单元测试注解

    @RunWith(SpringRunner.class) // 实现Spring Boot单元测试
    @SpringBootTest // 标记Spring Boot测试并加载应用容器
    

    注入待测试类HelloController
    在这里插入图片描述
    创建测试方法testHello()测试待测试类实例的hello()方法

    添加如下代码

    @Test
    public void testHello(){
        // 获取控制器hello()方法的返回值                            
        String hello = controller.hello();
        // 在控制台输出hello()方法的返回值                           
        System.out.println("hello()方法的返回值" + hello);
    }                                      
    

    运行测试方法testHello()
    在这里插入图片描述如果相判断待测试类的方法的返回值是不是指定的某个数据那么我们可以利用Assert类的assertSame()方法来进行测试

    修改测试方法testHello()
    在这里插入图片描述运行测试方法查看结果
    在这里插入图片描述
    测试失败。抛出AssertionError断言错误。

    期望值Hello Spring Boot World~

    实际值<h1 style='color: red; text-align: center'>Hello Spring Boot World~</h1>

    再修改测试方法testHello()修改期望值
    在这里插入图片描述
    运行测试方法查看结果
    在这里插入图片描述

    三对项目HelloWorld02进行单元测试

    1、添加单元测试依赖

    打开先前创建的项目如未创建请参考《Spring Initializr方式构建Spring Boot项目》查看Spring Initializr自动生成的测试类
    在这里插入图片描述

    在pom.xml文件里添加单元测试依赖
    在这里插入图片描述
    添加内容如下

    <dependency>
       <groupId>junit</groupId>
       <artifactId>junit</artifactId>
       <scope>test</scope>
    </dependency>
    

    更新项目依赖
    在这里插入图片描述

    2、进行单元测试

    在默认的应用测试类里注入待测试类创建testHello()测试方法
    在这里插入图片描述

    添加代码如下

    package net.army.boot;
    
    import net.army.boot.controller.HelloController;
    import org.junit.Assert;
    import org.junit.jupiter.api.Test;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    
    @SpringBootTest
    class HelloWorld02ApplicationTests {
        @Autowired // 注入待测试类
        private HelloController controller;
        @Test
        public void testHello() {
            String hello = controller.hello();
            Assert.assertSame("<h1 style='color: red; text-align: center'>你好Spring Boot世界~</h1>", hello);
        }
    }
    

    运行测试方法testHello()查看结果
    在这里插入图片描述

  • 阿里云国际版折扣https://www.yundadi.com

  • 阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
    标签: Spring