当前位置: 首页 > news >正文

SpringBoot系列之整合框架JUnit

文章目录

  • 一、什么是JUnit
  • 二、JUnit特点
  • 三、SpringBoot集成JUnit。


一、什么是JUnit

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)

二、JUnit特点

  • 用于编写和运行可重复的测试。
  • JUnit 测试让您可以更快地编写代码,提高质量。
  • JUnit 是优雅简洁。它是不那么复杂以及不需要花费太多的时间。
  • 确保测试能够在共享且固定的环境中运行,因此保证测试结果的可重复性
  • 用于测试期望结果的断言(Assertion)
  • 用于共享共同测试数据的测试工具
  • 用于方便的组织和运行测试的测试套件。

三、SpringBoot集成JUnit。

在SpringBoot的2.2版本之后集成了JUnit5版本。

JUnit 5 的变化

JUnit5与之前的JUnit框架区别比较大,JUnit5由如下三个模块组成

JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit Platform是在jvm上启动测试框架的基础,定义了测试引擎的API,可以在cmd命令行启动这个平台。
JUnit Jupiter是新编程模块和扩展模块在junit5上写测试和扩展的组合,Jupiter子工程提供在平台上跑Jupiter的测试引擎。
JUnit Vintage提供跑junit3和junit4的测试引擎。
junit5需要java8及以上的版本。但是可以测试用以前的jdk版本编译过的代码。

而SpringBoot2.2版本之后只需要使用注解@SpringBootTest,@Test导包为org.junit.jupiter.api.Test。即导入@Test导包为org.junit.jupiter.api.Test则不用加@RunWith(SpringRunner.class)注解。

@SpringBootTest(classes = Main.class)//springboot测试类
public class UserServiceTest {
    @Autowired
    UserService userService;

    @Test
    public void test(){
        userService.addUser();
    }
}

而SpringBoot2.2版本之前则需要@SpringBootTest@RunWith(SpringRunner.class)才能加载Spring容器进行测试

@SpringBootTest(classes = Main.class)//springboot测试类
@RunWith(SpringRunner.class)//junit 框架整合
public class UserServiceTest {
    @Autowired
    UserService userService;

    @Test
    public void test(){
        userService.addUser();
    }
}

相关文章:

  • 实测 | 海纳百川,华为OceanStor Pacific分布式存储为多元算力应用带来更优选择...
  • 如何在 Git 存储库中查找和恢复已删除的文件?
  • 终于有人把性能优化讲清楚了!阿里架构师推荐的Java性能权威指南
  • PS1文件执行
  • 获B轮融资 官栈如何打破薛定谔式“中式滋补”
  • 15、Mysql高级之并发参数调整
  • 智牛股_第9章_CEPH_Swift+文件上传与下载
  • 【Vue】源码—虚拟DOM和diff算法
  • R16 Dormant BWP
  • C++ Primer 课后习题详解 | 12.1.1 shared_ptr 类
  • OPTIONS 漏洞修复
  • 卷积神经网络 CNN 基础概念
  • 2022年工作总结
  • 转行做程序员,哪种编程语言既高薪又适合你?
  • Python使用pandas导入csv文件内容
  • 【TypeScript】TS安装与使用
  • 河道水文标尺监测系统 OpenCv
  • 通用预约小程序,可广泛应用于医疗、政务、教育、培训、体育、金融、生活服务等行业领域,基于腾讯小程序云开发,无须服务器和域名
  • maven中的pom
  • 基于形状的匹配提纲(第六个问题解决)