JUnit Jupiter支持使用下面表格中的注解来配置测试和扩展框架。
所有的核心注解都位于junit-jupiter-api
模块的 org.junit.jupiter.api 包中。
注解 | 描述 |
---|---|
@Test | 表示该方法是一个测试方法。与JUnit 4的@Test 注解不同的是,它没有声明任何属性,因为JUnit Jupiter中的测试扩展是基于它们自己的专用注解来完成的。这样的方法会被继承,除非它们被覆盖。 |
@ParameterizedTest | 表示该方法是一个 参数化测试。这样的方法会被继承,除非它们被覆盖。 |
@RepeatedTest | 表示该方法是一个 重复测试 的测试模板。这样的方法会被继承,除非它们被覆盖。 |
@TestFactory | 表示该方法是一个 动态测试 的测试工厂。这样的方法会被继承,除非它们被覆盖。 |
@TestInstance | 用于配置所标注的测试类的 测试实例生命周期。这些注解会被继承。 |
@TestTemplate | 表示该方法是一个 测试模板,它会依据注册的 提供者 所返回的调用上下文的数量被多次调用。 这样的方法会被继承,除非它们被覆盖。 |
@DisplayName | 为测试类或测试方法声明一个自定义的显示名称。该注解不能被继承。 |
@BeforeEach | 表示使用了该注解的方法应该在当前类中每一个使用了@Test 、@RepeatedTest 、@ParameterizedTest 或者@TestFactory 注解的方法之前 执行;类似于JUnit 4的 @Before 。这样的方法会被继承,除非它们被覆盖。 |
@AfterEach | 表示使用了该注解的方法应该在当前类中每一个使用了@Test 、@RepeatedTest 、@ParameterizedTest 或者@TestFactory 注解的方法之后 执行;类似于JUnit 4的 @After 。这样的方法会被继承,除非它们被覆盖。 |
@BeforeAll | 表示使用了该注解的方法应该在当前类中所有使用了@Test 、@RepeatedTest 、@ParameterizedTest 或者@TestFactory 注解的方法之前 执行;类似于JUnit 4的 @BeforeClass 。这样的方法会被继承(除非它们被隐藏 或覆盖),并且它必须是 static 方法(除非"per-class" 测试实例生命周期 被使用)。 |
@AfterAll | 表示使用了该注解的方法应该在当前类中所有使用了@Test 、@RepeatedTest 、@ParameterizedTest 或者@TestFactory 注解的方法之后执行;类似于JUnit 4的 @AfterClass 。这样的方法会被继承(除非它们被隐藏 或覆盖),并且它必须是 static 方法(除非"per-class" 测试实例生命周期 被使用)。 |
@Nested | 表示使用了该注解的类是一个内嵌、非静态的测试类。@BeforeAll 和@AfterAll 方法不能直接在@Nested 测试类中使用,(除非"per-class" 测试实例生命周期 被使用)。该注解不能被继承。 |
@Tag | 用于声明过滤测试的tags,该注解可以用在方法或类上;类似于TesgNG的测试组或JUnit 4的分类。该注解能被继承,但仅限于类级别,而非方法级别。 |
@Disable | 用于禁用一个测试类或测试方法;类似于JUnit 4的@Ignore 。该注解不能被继承。 |
@ExtendWith | 用于注册自定义 扩展。该注解不能被继承。 |
被@Test
、@TestTemplate
、@RepeatedTest
、@BeforeAll
、@AfterAll
、@BeforeEach
或 @AfterEach
注解标注的方法不可以有返回值。