通过 assertArrayEquals 方法来判断两个对象或原始类型的数组是否相等
@DisplayName(“测试数组断言”)
@Test
void testArrayAssertions(){
Assertions.assertArrayEquals(new int[]{1,2},new int[]{2,2},“数组内容不相等”);
}
assertAll 方法接受多个 org.junit.jupiter.api.Executable 函数式接口的实例作为要验证的断言,可以通过 lambda 表达式很容易的提供这些断言
@DisplayName(“测试组合断言”)
@Test
void testall(){
/**
- 所有断言全部需要成功
*/
Assertions.assertAll(“test”,
()->assertTrue(1 > 0,“结果不是true”),
()->assertEquals(1,2,“结果不是1”));
}
在JUnit4时期,想要测试方法的异常情况时,需要用@Rule注解的ExpectedException变量还是比较麻烦的。而JUnit5提供了一种新的断言方式Assertions.assertThrows() ,配合函数式编程就可以进行使用。
异常断言就是该业务逻辑应该是要抛出异常的,但是结果却没有抛出异常。说明业务逻辑有错误。
@DisplayName(“异常断言”)
@Test
void testException(){
/**
-
该业务逻辑一定要抛出异常,如果没有抛出异常,说明业务逻辑错误
-
断定义务逻辑一定会抛出异常
*/
Assertions.assertThrows(ArithmeticException.class, ()->{
int i = 10 / 2;
}, “业务逻辑竟然正常运行?”);
}
该业务逻辑一定在我设置的执行时间范围之内执行完成,超时就要报错。
@Test
@DisplayName(“超时断言测试”)
public void timeoutTest() {
//如果测试方法时间超过1s将会异常
Assertions.assertTimeout(Duration.ofMillis(1000), () -> Thread.sleep(1500),“业务逻辑执行时间过长”);
}
通过 fail 方法直接使得测试失败
@Test
@DisplayName(“测试快速失败断言”)
public void shouldFail() {
if(2 =&