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

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

目录
相关文章
|
2天前
|
缓存 Java 测试技术
Spring Boot中的性能测试与调优
Spring Boot中的性能测试与调优
|
2天前
|
Java jenkins 测试技术
如何使用Spring Boot进行单元测试
如何使用Spring Boot进行单元测试
|
2天前
|
IDE Java 测试技术
Springboot单元测试步骤
Springboot单元测试步骤
7 0
|
2天前
|
缓存 Java 测试技术
Spring Boot中的性能测试与调优
Spring Boot中的性能测试与调优
|
2天前
|
Java 测试技术 持续交付
如何使用Spring Boot进行单元测试
如何使用Spring Boot进行单元测试
|
5天前
|
Java 测试技术 Maven
SpringBoot单元测试
新建一个maven项目,spring-boot-test 配置pom.xml parent属性
15 0
|
11天前
|
JSON Java Maven
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
使用`MockMvc`来测试带有单个和多个请求参数的`GET`和`POST`接口
23 3
|
2月前
|
NoSQL 安全 测试技术
接口测试用例设计的关键步骤与技巧解析
该文介绍了接口测试的设计和实施,包括测试流程、质量目标和用例设计方法。接口测试在需求分析后进行,关注功能、性能、安全等六项质量目标。流程包括网络监听(如TcpDump, WireShark)和代理工具(Charles, BurpSuite, mitmproxy, Fiddler, AnyProxy)。设计用例时,需考虑基本功能流程、输入域测试(如边界值、特殊字符、参数类型、组合参数、幂等性)、线程安全(并发和分布式测试)以及故障注入。接口测试用例要素包括模块、标题、优先级、前置条件、请求方法等。文章强调了保证接口的幂等性和系统健壮性的测试重要性。
58 5
|
4天前
|
存储 JSON 测试技术
软件测试之 接口测试 Postman使用(下)
软件测试之 接口测试 Postman使用(下)
14 2
|
4天前
|
测试技术 数据格式
软件测试之 接口测试 Postman使用(上)
软件测试之 接口测试 Postman使用(上)
13 1