ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

五年了,你还在用Junit4吗?

2021-04-17 20:33:03  阅读:256  来源: 互联网

标签:DisplayName 断言 void JUnit 测试 Test Junit4 五年


junit5

JUnit5在2017年就发布了,你还在用junit4吗?

什么是junit5

与以前的JUnit版本不同,JUnit 5由三个不同子项目的多个不同模块组成。

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

JUnit Platform为在JVM上启动测试框架提供基础。它还定义了TestEngine API, 用来开发在平台上运行的测试框架。此外,平台提供了一个控制台启动器],用于从命令行启动平台,并为Gradle和Maven提供构建插件以[基于JUnit 4的Runner,用于在平台上运行任意TestEngine

JUnit Jupiter是在JUnit 5中编写测试和扩展的新型编程模型和[扩展模型][]的组合.Jupiter子项目提供了TestEngine,用于在平台上运行基于Jupiter的测试。

JUnit Vintage提供TestEngine,用于在平台上运行基于JUnit 3和JUnit 4的测试。

为什么需要 JUnit 5

自从有了类似 JUnit 之类的测试框架,Java 单元测试领域逐渐成熟,开发人员对单元测试框架也有了更高的要求:更多的测试方式,更少的其他库的依赖。

因此,大家期待着一个更强大的测试框架诞生,JUnit 作为Java测试领域的领头羊,推出了 JUnit 5 这个版本,主要特性:

  • 提供全新的断言和测试注解,支持测试类内嵌
  • 更丰富的测试方式:支持动态测试,重复测试,参数化测试等
  • 实现了模块化,让测试执行和测试发现等不同模块解耦,减少依赖
  • 提供对 Java 8 的支持,如 Lambda 表达式,Sream API等。

基本注解

@Test: 表示方法是测试方法。但是与JUnit4的@Test不同,他的职责非常单一不能声明任何属性,拓展的测试将会由Jupiter提供额外测试

@ParameterizedTest: 表示方法是参数化测试

@RepeatedTest: 表示方法可重复执行

@DisplayName: 为测试类或者测试方法设置展示名称

@BeforeEach: 表示在每个单元测试之前执行

@AfterEach: 表示在每个单元测试之后执行

@BeforeAll: 表示在所有单元测试之前执行

@AfterAll: 表示在所有单元测试之后执行

@Tag: 表示单元测试类别,类似于JUnit4中的@Categories

@Disabled: 表示测试类或测试方法不执行,类似于JUnit4中的@Ignore

@Timeout: 表示测试方法运行如果超过了指定时间将会返回错误

@ExtendWith: 为测试类或测试方法提供扩展类引用

常用注解格式:

class StandardTests {

    //与junit4的@beforeClass类似,每个测试类运行一次
    @BeforeAll
    static void initAll() {
    }

    //与junit4中@before类似,每个测试用例都运行一次
    @BeforeEach
    void init() {
    }

    @Test
    @DisplayName("成功测试")
    void succeedingTest() {
    }

    @Test
    @DisplayName("失败测试")
    void failingTest() {
        fail("a failing test");
    }

    //禁用测试用例
    @Test
    @Disabled("for demonstration purposes")
    void skippedTest() {
        // not executed
    }

    @Test
    void abortedTest() {
        assumeTrue("abc".contains("Z"));
        fail("test should have been aborted");
    }


    //与@BeforeEach对应,每个测试类执行一次,一般用于恢复环境
    @AfterEach
    void tearDown() {
    }

    //与@BeforeAll对应,每个测试类执行一次,一般用于恢复环境
    @AfterAll
    static void tearDownAll() {
    }
}

新特性

显示名称

@DisplayName("显示名称测试")
class DisplayNameDemo {

    @Test
    @DisplayName("我的 第一个 测试 用例")
    void testWithDisplayNameContainingSpaces() {
    }

    @Test
    @DisplayName("╯°□°)╯")
    void testWithDisplayNameContainingSpecialCharacters() {
    }

    @Test
    @DisplayName("

标签:DisplayName,断言,void,JUnit,测试,Test,Junit4,五年
来源: https://www.cnblogs.com/niunotniu/p/14671941.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有