主要版本有4和5版本,注解不太一样, 4迁移5参考官方文档
主要记录下常用的一些操作
其他复杂操作见官网
https://junit.org/junit5/docs/current/user-guide/#overview-java-versions
引入5.9.3版本依赖
<dependency>
<groupId>org.junit.jupitergroupId>
<artifactId>junit-jupiterartifactId>
<version>5.9.3version>
<scope>testscope>
dependency>
test包下使用
| @BeforeAll | 只执行一遍,在一个类里所有方法执行前执行 |
|---|---|
| @AfterAll | 只执行一遍,在一个类里所有方法执行后执行 |
| @BeforeEach | 每个方法执行前执行 |
| @AfterEach | 每个方法执行后执行 |
| @Test | 适用无返回值,无参数的方法,标记为单测 |
| @Disabled | 标识该方法不执行 |
| @DisplayName | 标识该单测方法别名 |
| @Order | 指定执行顺序 |
| @Nested | 放在类上,用来在一个测试类里嵌套测试类时使用 |
| @RepeatedTest() | 放在方法上,指定执行次数 |
| @ParameterizedTest | 指定带参数的方法 |
| @ValueSource | 和上面配合使用 |
| @Timeout | 指定超时时间 |
Assertions类 单纯判断结果是否符合预期
Assumptions类 可以指定抛出信息
class StandardTests {
@BeforeAll
static void initAll() {
}
@BeforeEach
void init() {
}
@Test
void succeedingTest() {
}
@Test
void failingTest() {
fail("a failing test");
}
@Test
@Disabled("for demonstration purposes")
void skippedTest() {
// not executed
}
@Test
void abortedTest() {
assumeTrue("abc".contains("Z"));
fail("test should have been aborted");
}
@AfterEach
void tearDown() {
}
@AfterAll
static void tearDownAll() {
}
}
1.基本参数类型
@ParameterizedTest
@ValueSource(strings = { "racecar", "radar", "able was I ere I saw elba" })
void palindromes(String candidate) {
assertTrue(StringUtils.isPalindrome(candidate));
}
2.方法入参
@ParameterizedTest
@MethodSource("stringProvider")
void testWithExplicitLocalMethodSource(String argument) {
assertNotNull(argument);
}
static Stream<String> stringProvider() {
return Stream.of("apple", "banana");
}