Junit5断言机制

注意信息是必须的,而且这个输出是格式化过的。

示例


import org.junit.jupiter.api.Assertions;

import org.junit.jupiter.api.Test;

import org.mockito.Mockito;

import java.time.Duration;

import java.util.ArrayList;

import java.util.List;

import static org.junit.jupiter.api.Assertions.assertAll;

import static org.junit.jupiter.api.Assertions.assertEquals;

import static org.junit.jupiter.api.Assertions.assertNotNull;

import static org.junit.jupiter.api.Assertions.assertThrows;

import static org.junit.jupiter.api.Assertions.assertTimeout;

import static org.junit.jupiter.api.Assertions.assertTrue;

import static org.mockito.Mockito.verify;

public class Junit5AssertTest {

/**

  • assertEquals比较两个值是否相同

*/

@Test

void fun1(){

assertEquals(2, 2);

//当不相等时,会打印出第三个参数

assertEquals(4, 5, “不相等”);

}

/**

  • assertTrue 判断括号里面的参数是否为true

*/

@Test

void fun2(){

assertTrue(‘a’ < ‘b’, “错误”);

}

//定义一个person对象,Person类里面有两个参数lastName,firstName

private static Dept dept = new Dept(“RESEARCH”,“NewYork”);

/**

  • assertAll()方法用于将多个测试语句放在一个组中执行,组中若有一个测试语句不通过,则这个组将会一起报错

  • 方法中第一个参数:组名称

  • 方法中第二个参数:组测试语句

*/

@Test

void groupedAssertions() {

assertAll(“dept”,

() -> assertEquals(“RESEARCH”, dept.getDname()),

() -> assertEquals(“NEWYORK”, dept.getLoc())

);

}

/**

  • assertAll()方法也可以嵌套多个assertAll()方法

  • 其中嵌套的多个测试组,这些组只会打印出这个组和父组的错误,对其他的组没有影响

*/

@Test

void dependentAssertions() {

assertAll(“properties”,

//第一个测试组

() -> {

String dname = dept.getDname();

assertNotNull(dname);

assertAll(“dname”,

() -> assertTrue(dname.startsWith(“R”)),

() -> assertTrue(dname.endsWith(“H”))

);

},

//第二个测试组

() -> {

String loc = dept.getLoc();

assertNotNull(loc);

assertAll(“loc”,

() -> assertTrue(loc.startsWith(“N”)),

() -> assertTrue(loc.endsWith(“k”))

);

}

);

}

/**

  • assertThrows()可以用来判断lambda表达式中的代码抛出的异常

  • 比如下面案例就是测试了抛出异常的信息是否相同

  • 参数:

  • 1:异常类声明

  • 2:测试代码Lambda表达式

*/

@Test

void exceptionTesting() {

Throwable exception = assertThrows(IllegalArgumentException.class, () -> {

try {

System.out.println(1 / 0);

}catch (Exception e){

throw new IllegalArgumentException(“非法的参数异常”);

}

});

assertEquals(“非法的参数异常”, exception.getMessage());

}

/**

  • assertTimeout()对方法执行时间进行测试

  • 实例中执行的代码部分必须在2分钟之内执行完毕,否则测试不通过

*/

@Test

void timeoutNotExceeded() {

assertTimeout(Duration.ofMinutes(2), () -> {

System.out.println(33+44);

});

}

/**

  • assertTimeout()还可以接受一个返回值(泛型 T)

  • 被测试代码如果通过测试就返回一个值,这个值被assertTimeout()方法返回

*/

@Test

void timeoutNotExceededWithResult() {

String actualResult = assertTimeout(Duration.ofMinutes(2), () -> {

return “haha”;

});

assertEquals(“haha”, actualResult);

}

/**

  • assertTimeout()毫秒案例

*/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值