JUnit5——入门

1. JUnit5 组成

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的测试。

2. 注解

注解描述

@Test

表示该方法是测试方法。与JUnit4@Test注解不同的是,这个注解没有声明任何属性。

@ParameterizedTest

表示该方法是参数化测试方法。

@RepeatedTest

表示该方法是用于重复测试的测试模板。

@TestFactory

表示该方法是用于动态测试的测试工厂。 

@TestTemplate

表示方法是测试用例的模板,设计为被调用多次,调用次数取决于注册提供者返回的调用上下文。

@TestMethodOrder

用于配置带注解测试类的测试方法执行顺序;类似于JUnit 4的@FixMethodOrder。

 

@TestInstance

用于为带注解的测试类配置测试实例生命周期。

@DisplayName

声明测试类或测试方法的自定义名称。

@DisplayNameGeneration

声明测试类的自定义名称生成器。

@BeforeEach

表示被注解的方法应在当前类的每个 @Test @RepeatedTest @ParameterizedTest  @TestFactory 方法之前执行 ; 类似于 JUnit 4 @Before

@AfterEach

表示被注解的方法应在当前类的每个 @Test @RepeatedTest @ParameterizedTest  @TestFactory 方法之后执行 ; 类似于 JUnit 4 @After

@BeforeAll

表示被注解的方法应该在当前类的所有 @Test @RepeatedTest @ParameterizedTest 和  @TestFactory 方法之前执行 ; 类似于 JUnit 4 @BeforeClass 。必须是静态方法。

@AfterAll

表示被注解的方法应该在当前类的所有 @Test @RepeatedTest @ParameterizedTest 和  @TestFactory 方法之后执行 ; 类似于 JUnit 4 @AfterClass 。必须是静态方法。

@Nested

表示被注解的类是一个嵌套的非静态测试类。

@Tag

在类或方法级别声明标签,用于过滤测试 ; 类似于 TestNG 中的 test group JUnit 4中的 Categories 。这个注释可以在类级别上继承,但不能在方法级别上继承。

@Disabled

用于禁用测试类或测试方法; 类似于JUnit4@Ignore

@Timeout

如果执行超过给定的时间,则使 test, test factory, test template, or lifecycle method 失败。

@ExtendWith

用于注册自定义扩展

@RegisterExtension

用于通过字段以编程方式注册扩展名。

@TempDir

用于通过 lifecycle method或test method中的字段注入或参数注入来提供临时目录。

【注】方法被 @Test , @TestTemplate , @RepeatedTest , @BeforeAll , @AfterAll , @BeforeEach , @AfterEach 注解了都不能有返回值,都应该是 public void XXX(args... ){ ... } 这样的方法 。

3. 示例

maven 依赖

        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-launcher</artifactId>
            <version>1.7.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.7.0</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.7.0</version>
            <scope>test</scope>
        </dependency>
    @Test
    public void testCase(){
        Assertions.assertEquals(2,1+1);
    }

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值