写点什么

SpringBoot 整合 Junit

作者:
  • 2022 年 8 月 22 日
    河南
  • 本文字数:1645 字

    阅读完需:约 5 分钟

SpringBoot 整合 Junit

前言

Java 语言的单元测试框架  JUnit 是一个 Java 语言的单元测试框架。它由 Kent Beck 和 Erich Gamma 建立,逐渐成为源于 Kent Beck 的 sUnit 的 xUnit 家族中最为成功的一个。 JUnit 有它自己的 JUnit 扩展生态圈。多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具。



1、Junit 简介

1)Junit 是什么

  JUnit 是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架。Junit 测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit 是一套框架,继承 TestCase 类,就可以用 Junit 进行自动测试了。

1)单元测试

  单元测试(英语:Unit Testing)又称为模块测试 ,是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。


  单元测试允许程序员在未来重构代码,并且确保模块依然工作正确(复合测试)。这个过程就是为所有函数和方法编写单元测试,一旦变更导致错误发生,借助于单元测试可以快速定位并修复错误。  单元测试可以由两种方式完成:


2)Junit 特点

特点:


  • JUnit 是一个开放的资源框架,用于编写和运行测试。 提供注解来识别测试方法。 提供断言来测试预期结果。 提供测试运行来运行测试。

  • JUnit 测试允许你编写代码更快,并能提高质量。 JUnit 优雅简洁。没那么复杂,花费时间较少。

  • JUnit 测试可以自动运行并且检查自身结果并提供即时反馈。所以也没有必要人工梳理测试结果的报告。

  • JUnit 测试可以被组织为测试套件,包含测试用例,甚至其他的测试套件。

  • JUnit 在一个条中显示进度。如果运行良好则是绿色;如果运行失败,则变成红色。

2、Spring 整合 Junit

@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(classes = SpringConfig.class)public class UserServiceTest {        @Autowired    private TestService testService;        @Test    public void testSave(){        TestService.save();    }}
复制代码


使用 @RunWith 注解指定运行器,使用 @ContextConfiguration 注解来指定配置类或者配置文件。

3、SpringBoot 整合 Junit

1)准备环境

1)创建一个名为 Junit 的 SpringBoot 工程,工程目录结构如下



2)添加 Junit 依赖


    <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.12</version>        </dependency>
复制代码


3)代码测试用例在 com.example.junit.service 下创建 TestService`接口,内容如下


package com.example.junit.services;
public interface TestService {
public void save();
}
复制代码


在 com.example.junit.services.impl 包写创建一个 TestServiceImpl 类,使其实现 TestService 接口,内容如下


package com.example.junit.services.impl;
import com.example.junit.services.TestService;import org.springframework.stereotype.Service;
@Servicepublic class TestServiceImpl implements TestService { @Override public void save() { System.out.println("save method"); }}
复制代码

2)编写测试类

创建测试类,将 TestService`注入到该测试类中


package com.example.junit;
import com.example.junit.services.TestService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTestclass JunitApplicationTests {
@Autowired private TestService testService;
@Test void Test() { testService.save(); }
}
复制代码


测试结果



4、SpringBoot 的优势

SpringBoot 整合 junit 特别简单,分为以下三步完成


  • 在测试类上添加 SpringBootTest 注解

  • 使用 @Autowired 注入要测试的资源

  • 定义测试方法进行测试

总结

  单元测试允许程序员在未来重构代码,并且确保模块依然工作正确(复合测试)。这个过程就是为所有函数和方法编写单元测试,一旦变更导致错误发生,借助于单元测试可以快速定位并修复错误。

发布于: 刚刚阅读数: 3
用户头像

关注

在校大三学生一枚 2022.08.02 加入

喜欢学习编程,擅长技术栈JAVA

评论

发布
暂无评论
SpringBoot 整合 Junit_springboot_斯_InfoQ写作社区