springboot测试断言工具类Assertions

简介: springboot测试断言工具类Assertions

org.junit.jupiter.api.Assertions是JUnit 5中用于断言的工具类。它提供了一系列静态方法,用于验证预期结果和实际结果之间的关系。

以下是Assertions类中常用方法的作用和示例:

fail()

  • 作用:断言失败,并抛出AssertionError异常。
  • 示例:
Assertions.fail("This test should fail");

assertTrue(boolean condition)

  • 作用:断言条件为真。
  • 示例:
Assertions.assertTrue(5 > 2);

assertFalse(boolean condition)

  • 作用:断言条件为假。
  • 示例:
Assertions.assertFalse(2 > 5);


assertNull(Object object)

  • 作用:断言对象为null。
  • 示例:
Object obj = null;
Assertions.assertNull(obj);

assertNotNull(Object object)

  • 作用:断言对象不为null。
  • 示例:
Object obj = new Object();
Assertions.assertNotNull(obj);


assertEquals(expected, actual)

  • 作用:断言两个对象相等。
  • 示例:
String expected = "Hello";
String actual = "Hello";
Assertions.assertEquals(expected, actual);

assertArrayEquals(expectedArray, actualArray)

  • 作用:断言两个数组相等。
  • 示例:
int[] expectedArray = {1, 2, 3};
int[] actualArray = {1, 2, 3};
Assertions.assertArrayEquals(expectedArray, actualArray);

assertIterableEquals(expectedIterable, actualIterable)

  • 作用:断言两个Iterable对象相等。
  • 示例:
List<String> expectedList = Arrays.asList("A", "B", "C");
List<String> actualList = Arrays.asList("A", "B", "C");
Assertions.assertIterableEquals(expectedList, actualList);

assertLinesMatch(expectedLines, actualLines)

  • 作用:断言两个字符串列表相匹配。

示例:

List<String> expectedLines = Arrays.asList("Hello", "World");
List<String> actualLines = Arrays.asList("Hello", "World");
Assertions.assertLinesMatch(expectedLines, actualLines);


assertNotEquals(unexpected, actual)

  • 作用:断言两个对象不相等。
  • 示例:
String unexpected = "Hello";
String actual = "World";
Assertions.assertNotEquals(unexpected, actual);


assertSame(expected, actual)

  • 作用:断言两个对象引用相同。
  • 示例:
Object obj1 = new Object();
Object obj2 = obj1;
Assertions.assertSame(obj1, obj2);

assertNotSame(unexpected, actual)

  • 作用:断言两个对象引用不相同。
  • 示例:
Object obj1 = new Object();
Object obj2 = new Object();
Assertions.assertNotSame(obj1, obj2);

assertAll(executables…)

  • 作用:同时执行多个断言,并抛出合并的失败消息。
  • 示例:
Assertions.assertAll("group",
    () -> Assertions.assertTrue(true),
    () -> Assertions.assertEquals(5, 5),
    () -> Assertions.assertNotNull(new Object())
);

assertThrows(expectedExceptionType, executable)

  • 作用:断言代码块引发指定的异常。
  • 示例:
Assertions.assertThrows(IllegalArgumentException.class, () -> {
    throw new IllegalArgumentException("Invalid argument");
});

assertTimeout(duration, executable)

  • 作用:断言代码块在指定时间内执行完毕。
  • 示例:
Assertions.assertTimeout(Duration.ofSeconds(1), () -> {
    // 代码块在1秒内执行完毕
    Thread.sleep(500);
});

assertTimeoutPreemptively(duration, executable)

  • 作用:断言代码块在指定时间内执行完毕,会中断执行。
  • 示例:
Assertions.assertTimeoutPreemptively(Duration.ofSeconds(1), () -> {
    // 代码块在1秒内执行完毕,即使未完成也会中断执行
    Thread.sleep(2000);
});

assertInstanceOf(expectedType, obj)

  • 作用:断言对象是指定类型的实例。
  • 示例:
Object obj = "Hello";
Assertions.assertInstanceOf(String.class, obj);

这些方法可以帮助我们编写更加健壮的测试用例,对于预期结果和实际结果之间的差异进行验证。

相关文章
|
5月前
|
人工智能 Java 测试技术
Spring Boot 集成 JUnit 单元测试
本文介绍了在Spring Boot中使用JUnit 5进行单元测试的常用方法与技巧,包括添加依赖、编写测试类、使用@SpringBootTest参数、自动装配测试模块(如JSON、MVC、WebFlux、JDBC等),以及@MockBean和@SpyBean的应用。内容实用,适合Java开发者参考学习。
620 0
|
1月前
|
Java 测试技术 数据库连接
【SpringBoot(四)】还不懂文件上传?JUnit使用?本文带你了解SpringBoot的文件上传、异常处理、组件注入等知识!并且带你领悟JUnit单元测试的使用!
Spring专栏第四章,本文带你上手 SpringBoot 的文件上传、异常处理、组件注入等功能 并且为你演示Junit5的基础上手体验
829 3
|
4月前
|
Java 测试技术 Spring
简单学Spring Boot | 博客项目的测试
本内容介绍了基于Spring Boot的博客项目测试实践,重点在于通过测试驱动开发(TDD)优化服务层代码,提升代码质量和功能可靠性。案例详细展示了如何为PostService类编写测试用例、运行测试并根据反馈优化功能代码,包括两次优化过程。通过TDD流程,确保每项功能经过严格验证,增强代码可维护性与系统稳定性。
235 0
|
5月前
|
人工智能 Java 测试技术
SpringBoot 测试实践:单元测试与集成测试
在 Spring Boot 测试中,@MockBean 用于创建完全模拟的 Bean,替代真实对象行为;而 @SpyBean 则用于部分模拟,保留未指定方法的真实实现。两者结合 Mockito 可灵活控制依赖行为,提升测试覆盖率。合理使用 @ContextConfiguration 和避免滥用 @SpringBootTest 可优化测试上下文加载速度,提高测试效率。
337 5
|
10月前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
|
10月前
|
Java 测试技术 应用服务中间件
Spring Boot 如何测试打包部署
本文介绍了 Spring Boot 项目的开发、调试、打包及投产上线的全流程。主要内容包括: 1. **单元测试**:通过添加 `spring-boot-starter-test` 包,使用 `@RunWith(SpringRunner.class)` 和 `@SpringBootTest` 注解进行测试类开发。 2. **集成测试**:支持热部署,通过添加 `spring-boot-devtools` 实现代码修改后自动重启。 3. **投产上线**:提供两种部署方案,一是打包成 jar 包直接运行,二是打包成 war 包部署到 Tomcat 服务器。
285 10
|
11月前
|
安全 Java 测试技术
springboot之SpringBoot单元测试
本文介绍了Spring和Spring Boot项目的单元测试方法,包括使用`@RunWith(SpringJUnit4ClassRunner.class)`、`@WebAppConfiguration`等注解配置测试环境,利用`MockMvc`进行HTTP请求模拟测试,以及如何结合Spring Security进行安全相关的单元测试。Spring Boot中则推荐使用`@SpringBootTest`注解简化测试配置。
430 4
|
10月前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
5月前
|
Java 测试技术 容器
Jmeter工具使用:HTTP接口性能测试实战
希望这篇文章能够帮助你初步理解如何使用JMeter进行HTTP接口性能测试,有兴趣的话,你可以研究更多关于JMeter的内容。记住,只有理解并掌握了这些工具,你才能充分利用它们发挥其应有的价值。+
976 23
|
7月前
|
SQL 安全 测试技术
2025接口测试全攻略:高并发、安全防护与六大工具实战指南
本文探讨高并发稳定性验证、安全防护实战及六大工具(Postman、RunnerGo、Apipost、JMeter、SoapUI、Fiddler)选型指南,助力构建未来接口测试体系。接口测试旨在验证数据传输、参数合法性、错误处理能力及性能安全性,其重要性体现在早期发现问题、保障系统稳定和支撑持续集成。常用方法包括功能、性能、安全性及兼容性测试,典型场景涵盖前后端分离开发、第三方服务集成与数据一致性检查。选择合适的工具需综合考虑需求与团队协作等因素。
1058 24