-
@BeforeAll:表示在所有单元测试之前执行,只执行一次。
-
@BeforeEach:表示在每个单元测试之前执行,假如测试类有n个测试方法,则被执行n次。
-
@Test:表示方法是测试方法。但是与junit4的@Test不同,它的职责非常单一,不能声明任何属性,拓展的测试将会由Jupiter提供额外测试
-
@AfterEach:表示在每个单元测试之后执行,假如测试类有n个测试方法,则被执行n次。
-
@AfterAll:表示在所有单元测试之后执行,只执行一次。
-
@RepeatedTest:表示方法额外执行的次数
-
@DisplayName:为测试类或测试方法设置展示名称
-
@Tag:表示单元测试类别,类似于Junit4中的@Categories
表示为测试类或测试方法打一个标签。一般来说不能单独使用,需要配合其他的标签一起使用,具体详看Junit5套件执行 - @Disabled:表示不执行
public class DemoTest {
/**
* @BeforeAll和@AfterAll 必须静态修饰,在所有方法执行前后只执行一次
* @Test 一个方法
* @AfterEach和@BeforeEach 每次方法执行前都会执行一次
* @DisplayName() 类似注解的功能
* @RepeatedTest(5) 重复5次
* @Disabled 不执行该方法
* @Tags 打标签
*/
@BeforeAll
public static void beforeAll() {
System.out.println("BeforeAll再每个类中只执行一次,且是在开头执行");
}
@BeforeEach
public void beforeEach() {
System.out.println("BeforeEach在每个方法执行前都会执行一次");
}
// junit5不需要访问修饰符
// @Disabled表示不执行
@Test
@Disabled
@DisplayName("方法1")
void fun1() {
System.out.println("---fun1---");
}
@Test
@DisplayName("方法2")
@RepeatedTest(5)
void fun2() {
System.out.println("---fun2---");
}
@Test
@Tag("tag1")
void tagTest(){
System.out.println("tag1");
}
@AfterEach
public void afterEach() {
System.out.println("AfterEach在每个方法执行后都会执行一次");
}
@AfterAll
public static void afterAll() {
System.out.println("afterAll再每个类中只执行一次,且是在结尾执行");
}
}
-
@ParameterizedTest:表示方法是参数化测试
具体详看jUnit5参数化
public class DemoTestParams {
@ParameterizedTest
@ValueSource(ints = {1, 2, 3,4})
void testWithValueSource(int argument) {
assertTrue(argument > 0 && argument < 4);
}
}
-
@Timeout:表示测试方法超过了指定时间将返回错误
-
@ExtendWith:为测试类或测试方法提供扩展类引用
-
@Nested:表示嵌套执行
网友评论