单元测试

Exisi 2022-09-28 15:03:23
Categories: Tags:

 

常用注解

说明

@Test

表示方法是一种测试方法。 与 JUnit 4 @Test 注解不同,此注释不会声明任何属性。

@TestFactory

表示方法是动态测试的测试工程

@TestInstance

用于配置测试实例生命周期

@TestTemplate

表示方法是为多次调用的测试用例的模板

@TestMethodOrder

指定测试顺序

@TempDir

临时目录

@Tag

用于在类或方法级别声明用于过滤测试的标记

@ParameterizedTest

表示方法是参数化测试

@RepeatedTest

表示方法是重复测试模板

@RegisterExtension

通过字段注册扩展

@DisplayName

为测试类或者测试方法自定义一个名称

@DisplayNameGeneration

测试名字统一处理

@Disabled

用于禁用测试类或测试方法

@BeforeEach

表示方法在每个测试方法运行前都会运行

@BeforeAll

表示方法在所有测试方法之前运行

@AfterEach

表示方法在每个测试方法运行之后都会运行

@AfterAll

表示方法在所有测试方法之后运行

@Nested

表示带注解的类是嵌套的非静态测试类,@BeforeAll @AfterAll 方法不能直接在@Nested 测试类中使用,除非修改测试实例生命周期。

@ExtendWith

用于注册自定义扩展,该注解可以继承

条件注解

说明

@EnabledOnOs

表示允许在指定的操作系统上运行指定的测试类或者测试方法。

@DisabledOnOs

表示禁止在指定的操作系统上运行指定的测试类或者测试方法。

@EnabledOnJre

表示运行在指定版本java的运行环境上运行测试类或者方法。

@DisabledOnJre

表示禁止在指定版本java的运行环境上运行测试类或者方法。

@EnabledIfSystemProperty

表示允许在满足JVM系统属性值的情况下运行测试类或者方法。其中name表示属性值的keymatches表示属性值是否匹配(可以用正则表达式)

@DisabledIfSystemProperty

表示禁止在满足JVM系统属性值的情况下运行测试类或者方法。其中name表示属性值的keymatches表示属性值是否匹配(可以用正则表达式)

@EnabledIfEnvironmentVariable

表示运允许在满足底层操作系统属性值的情况下运行测试类或者方法。其中name表示属性值的keymatches表示属性值是否匹配(可以用正则表达式)

@DisabledIfEnvironmentVariable

表示运禁止在满足底层操作系统属性值的情况下运行测试类或者方法。其中name表示属性值的keymatches表示属性值是否匹配(可以用正则表达式)

示例

@DisplayName("who am i")

public class BasicTest {

 

    public BasicTest() {

        System.out.println("Instance");

    }

 

    @Test

    void firstTest() {

        System.out.println("First test");

    }

 

    @Tag("second")

    @Test

    void secTest() {

        System.out.println("Second test");

    }

 

    @BeforeEach

    void beforeRun() {

        System.out.println("BeforeEach");

    }

 

    @BeforeAll

    static void beforeStaticRun() {

        System.out.println("BeforeAll");

    }

 

    @AfterEach

    void afterRun() {

        System.out.println("AfterEach");

    }

 

    @AfterAll

    static void afterStaticRun() {

        System.out.println("AfterAll");

    }

 

    @Test

    @Disabled("skip run")

    @DisplayName("厉害了")

    void skipRun() {

        System.out.println("disabled");

    }

}