基本标注操作
- @DisplayName 用于标注测试类和测试方法的名字
- @Test 用于标注这个方法是测试方法
- @BeforeAll 在所有测试方法开始之前,执行一次(静态方法)
- @AfterAll 在所有测试方法结束之后,执行一次(静态方法)
- @BeforeEach 在每一个测试方法,执行开始之前,都会执行(非静态方法)
- @AfterEach 在每一个测试方法,执行结束之后,都会执行(非静态方法)
例如:
@DisplayName("junit测试用例")
public class JunitTest {
@BeforeAll
public static void init() {
System.out.println("初始化数据");
}
@AfterAll
public static void cleanUp() {
System.out.println("清理数据");
}
@BeforeEach
public void methoedStart() {
System.out.println("当前测试方法开始");
}
@AfterEach
public void methoedEnd() {
System.out.println("当前测试方法结束");
}
@DisplayName("测试1")
@Test
void test1() {
System.out.println(" 测试1执行");
}
@DisplayName("测试2")
@Test
void test2() {
System.out.println(" 测试2执行");
}
进阶操作
- @Disabled
在测试方法上,加上 @Disabled 注解,那么在运行这个测试类的时候,该测试方法会被忽略。 - @RepeatedTest
在测试方法上,去掉 @Test ,而使用 @RepeatedTest 注解,则表示该方法要重复测试。
注意:只有一个参数为重复测试的次数;两个参数要指定参数值分别是啥;
例如:(currentRepetition表示已经重复的次数 )
@RepeatedTest(value = 5,name= "{currentRepetition}")
public void testCase5() {
System.out.println("这是一个测试用例");
}
- @ParameterizedTest
@ParameterizedTest 替代 @Test 注解,任何一个参数化测试方法都需要标记上该注解;使用 @ValueSource 配合 ,表明参数
@ParameterizedTest
@ValueSource(strings = {"tom","mary","poly"})
void test3(String name) {
System.out.println(" hello!"+name);
}
注意:有几个参数执行几次