微琅 网站建设,怎么给网站做绿标,教育网站建站,网页版梦幻西游大闹天宫困难 在junit单元测试中#xff0c;我们可以使用 org.junit.Assert.assertThrows 包下的 assertThrows() 方法 这个方法返回了一个泛型的异常
public static T extends Throwable assertThrows(ClassT expectedType, Executable executable) 假设我们有以下… 在junit单元测试中我们可以使用 org.junit.Assert.assertThrows 包下的 assertThrows() 方法 这个方法返回了一个泛型的异常
public static T extends Throwable assertThrows(ClassT expectedType, Executable executable) 假设我们有以下测试类
package cn.lanqiao;public class MyError {public int t(int num) {if(num 18) {throw new NullPointerException(年龄小于18);}else {return 0;}}}
咱们可以使用assertThrows() 去断言它所抛出的异常
第一个参数可以传入异常的类型, 第二个参数位置传入一个函数 可以用 Lambda 表达式
package cn.lanqiao;import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThrows;import org.junit.Before;
import org.junit.Test;public class MyErrorTest {private MyError myError;Beforepublic void init() {myError new MyError();}Testpublic void test1() {assertThrows(NullPointerException.class, () - myError.t(17));}
}我们也可以通过接收它的返回值然后拿到抛出异常的信息在断言提示信息Test
public void test2() {NullPointerException exception assertThrows(NullPointerException.class, () - myError.t(17));// 此处 exception.getMessage() 将会得到 年龄小于18 这段字符串assertEquals(年龄小于18, exception.getMessage());
}除了这种方法我们还可以在Test的注解中中预期异常如这样Test(expected NullPointerException .class)
public void test3() {myError.t(17);
}