一、JUnit5架构
1.架构
- JUnit Platform:其主要作用是在 JVM 上启动测试框架。通过 JUnit Platform,其他的自动化测试引擎或开发人员自己定制的引擎都可以接入 Junit 实现对接和执行。
- JUnit Jupiter:包含了 JUnit 5 最新的编程模型和扩展机制; Jupiter 本身也是一个基于 Junit Platform 的引擎实现。
- JUnit Vintage:兼容JUnit3,JUnit4 版本的测试引擎
2.依赖
SpringBoot整合依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.3.10.RELEASE</version>
<scope>test</scope>
</dependency>
二、Junit用法
1.常用方法和注解
- assertEquals:断言结果相等;
assertEquals(23, maps.get("ID"));
- assertNotNull:断言结果不为空;
assertNotNull(mapList);
- assertAll:进行一组断言,如果前一个失败了,后续不再执行。
//在一组断言中,当有一个执行失败,则中断执行
assertAll(
() -> assertEquals(23, maps.get("ID")),
() -> assertEquals("Kabol", maps.get("Name"))
);
- assertTrue:断言boolean值
assertTrue(stack.isEmpty());
- assertThrows:断言异常,出现指定异常为正确
//出现指定异常时,该测试通过
assertThrows(ArithmeticException.class, () -> {
int i = 1 / 0;
});
- assertTimeout:断言超时;
//第一个参数指定超时运行时间,lambda表达式中为执行的代码
assertTimeout(Duration.ofSeconds(5), () -> {
Thread.sleep(4000);
getService.getInfo(3);
});
- @DisplayName():设置名称
@Test
@DisplayName("异常测试")
@Order(2)