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);

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

相关文章
|
28天前
|
Java 测试技术 开发者
必学!Spring Boot 单元测试、Mock 与 TestContainer 的高效使用技巧
【10月更文挑战第18天】 在现代软件开发中,单元测试是保证代码质量的重要手段。Spring Boot提供了强大的测试支持,使得编写和运行测试变得更加简单和高效。本文将深入探讨Spring Boot的单元测试、Mock技术以及TestContainer的高效使用技巧,帮助开发者提升测试效率和代码质量。
150 2
|
1月前
|
XML Java 测试技术
【SpringBoot系列】初识Springboot并搭建测试环境
【SpringBoot系列】初识Springboot并搭建测试环境
81 0
|
1月前
|
安全 Java 数据库
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
这篇文章是关于Apache Shiro权限管理框架的详细学习指南,涵盖了Shiro的基本概念、认证与授权流程,并通过Spring Boot测试模块演示了Shiro在单应用环境下的使用,包括与IniRealm、JdbcRealm的集成以及自定义Realm的实现。
44 3
shiro学习一:了解shiro,学习执行shiro的流程。使用springboot的测试模块学习shiro单应用(demo 6个)
|
1月前
|
监控 Java Maven
springboot学习二:springboot 初创建 web 项目、修改banner、热部署插件、切换运行环境、springboot参数配置,打包项目并测试成功
这篇文章介绍了如何快速创建Spring Boot项目,包括项目的初始化、结构、打包部署、修改启动Banner、热部署、环境切换和参数配置等基础操作。
134 0
|
2月前
|
JavaScript 前端开发 Java
Spring Boot+cucumber+契约测试
Spring Boot+cucumber+契约测试
22 0
Spring Boot+cucumber+契约测试
|
3月前
|
Java 测试技术
SpringBoot单元测试快速写法问题之区分链路环节是否应该被Mock如何解决
SpringBoot单元测试快速写法问题之区分链路环节是否应该被Mock如何解决
|
3月前
|
Java 测试技术 数据库
SpringBoot单元测试快速写法问题之不想在PandoraBoot工程中Mock Dao层如何解决
SpringBoot单元测试快速写法问题之不想在PandoraBoot工程中Mock Dao层如何解决
|
10天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
42 3
|
1月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
63 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
2月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
242 7
Jmeter实现WebSocket协议的接口测试方法