| 断言(assertions)是测试方法中的核心部分,用来对测试需要满足的条件进行验证。这些断言方法都是 org.junit.jupiter.api.Assertions 的静态方法 |
| 检查业务逻辑返回的数据是否合理。 |
| 所有的测试运行结束以后,会有一个详细的测试报告 |
-
简单断言

-
案例
| # 当前面执行的断言失败后,后面的断言不会执行 |
| |
| @Test |
| @DisplayName("simple assertion") |
| public void simple() { |
| |
| assertEquals(3, 1 + 2, "simple math"); |
| |
| assertNotEquals(3, 1 + 1); |
| |
| assertNotSame(new Object(), new Object()); |
| Object obj = new Object(); |
| assertSame(obj, obj); |
| |
| assertFalse(1 > 2); |
| |
| assertTrue(1 < 2); |
| |
| assertNull(null); |
| |
| assertNotNull(new Object()); |
| } |
| # 通过 assertArrayEquals 方法来判断两个对象或原始类型的数组是否相等 |
| |
| @Test |
| @DisplayName("array assertion") |
| public void array() { |
| assertArrayEquals(new int[]{1, 2}, new int[] {1, 2}); |
| } |
| # assertAll 方法接受多个 org.junit.jupiter.api.Executable 函数式接口的实例作为要验证的断言,可以通过 lambda 表达式很容易的提供这些断言 |
| |
| @Test |
| @DisplayName("assert all") |
| public void all() { |
| assertAll("Math", |
| () -> assertEquals(2, 1 + 1), |
| () -> assertTrue(1 > 0) |
| ); |
| } |
| # 断言一定会抛出某种异常 |
| |
| @Test |
| @DisplayName("异常测试") |
| public void exceptionTest() { |
| ArithmeticException exception = Assertions.assertThrows( |
| |
| ArithmeticException.class, () -> System.out.println(1 % 0)); |
| |
| } |
| @Test |
| @DisplayName("超时测试") |
| public void timeoutTest() { |
| |
| Assertions.assertTimeout(Duration.ofMillis(1000), () -> Thread.sleep(500)); |
| } |
| # 通过 fail 方法直接使得测试失败 |
| |
| @Test |
| @DisplayName("fail") |
| public void shouldFail() { |
| fail("This should fail"); |
| } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?