JUnit5常用注解
JUnit5的注解与JUnit4的注解有所变化
https://junit.org/junit5/docs/current/user-guide/#writing-tests-annotations
- @Test :表示方法是测试方法。但是与JUnit4的@Test不同,他的职责非常单一不能声明任何属性,拓展的测试将会由Jupiter提供额外测试
- @ParameterizedTest :表示方法是参数化测试,下方会有详细介绍
- @RepeatedTest :表示方法可重复执行,下方会有详细介绍
- @DisplayName :为测试类或者测试方法设置展示名称
- @BeforeEach :表示在每个单元测试之前执行
- @AfterEach :表示在每个单元测试之后执行
- @BeforeAll :表示在所有单元测试之前执行
- @AfterAll :表示在所有单元测试之后执行
- @Tag :表示单元测试类别,类似于JUnit4中的@Categories
- @Disabled :表示测试类或测试方法不执行,类似于JUnit4中的@Ignore
- @Timeout :表示测试方法运行如果超过了指定时间将会返回错误
- @ExtendWith :为测试类或测试方法提供扩展类引用
@DisplayName 为测试类或者测试方法设置展示名称
@DisplayName("junit5功能测试类")
public class Junit5Test {
@DisplayName("测试DisplayName注解")
@Test
void testDisplayName(){
System.out.println(1);
}
}
@BeforeEach :表示在每个单元测试之前执行
@AfterEach :表示在每个单元测试之后执行
@BeforeEach
void testBeforeEach() {
System.out.println("测试开始了");
}
@AfterEach
void testAfterEach() {
System.out.println("测试结束了");
}
@BeforeAll :表示在所有单元测试之前执行
@AfterAll :表示在所有单元测试之后执行
@DisplayName("junit5功能测试类")
public class Junit5Test {
@DisplayName("测试DisplayName注解")
@Test
void testDisplayName() {
System.out.println(1);
}
@DisplayName("测试方法2")
@Test
void test2() {
System.out.println(2);
}
@BeforeEach
void testBeforeEach() {
System.out.println("测试开始了");
}
@AfterEach
void testAfterEach() {
System.out.println("测试结束了");
}
@BeforeAll //:表示在所有单元测试之前执行
static void testBeforeAll(){
System.out.println("所有测试就要开始了");
}
@AfterAll// :表示在所有单元测试之后执行
static void testAfterAll(){
System.out.println("所有测试都要结束了");
}
}
@Disabled :表示测试类或测试方法不执行
@Timeout :表示测试方法运行如果超过了指定时间将会返回错误
/**
* 规定方法超出时间,超出时间测试出异常
* @throws Exception
*/
@Timeout(value = 500,unit = TimeUnit.MILLISECONDS)
@Test
void testTimeout()throws InterruptedException{
Thread.sleep(600);
}
@RepeatedTest :表示方法可重复执行
@RepeatedTest(4)
void test3(){
System.out.println(3);
}