Assert的可用方法
Jdk在1.4的时候,引入了assert关键字,这个assert关键字后面只可以接一个boolean类型,不为true的话,会抛出AssertionError(extends Error) junit扩展了它的方法,使得有一些更方便的API(抛出的异常跟上面的一致)
Junit包Assert的方法
// 带message的是,断言失败的话,需要打印的字符串 // 对那些仅仅是判断的参数的类型不一致的方法,就没全部复制过来了 // 断言条件为true assertTrue(String message, boolean condition); assertTrue(boolean condition); // false assertFalse(String message, boolean condition); assertFalse(boolean condition); // 直接抛出异常 fail() fail(String message) // 断言是相等的 assertEquals(Object expected,Object actual) assertEquals(String message, Object expected, Object actual) // 断言是不相等的 assertNotEquals(Object unexpected, Object actual) assertNotEquals(String message, Object unexpected, Object actual) // 断言数组里元素是否一致 assertArrayEquals(String message, Object[] expecteds, Object[] actuals) // object为null assertNotNull(Object object) assertNull(String message, Object object) // object不为null assertNotNull(Object object) assertNotNull(String message, Object object) // 2者是相同的引用 assertSame(Object expected, Object actual) assertSame(String message, Object expected, Object actual) // 2者是不同的引用 assertNotSame(Object unexpected, Object actual) assertNotSame(String message, Object unexpected, Object actual) //断言runnable(ThrowingRunnable)会抛出一个异常是expectedThrowable类型的异常, //是的话,这个异常不会抛出来(线程不需要自己run,这方法内部会自己run) assertThrows(Class<T> expectedThrowable,ThrowingRunnable runnable) //assertThrows的示例代码 //自己运行 ThrowingRunnable throwingRunnable = new ThrowingRunnable() { @Override public void run() throws Throwable { System.out.println(1 / 0); } }; throwingRunnable.run(); //控制台输出 java.lang.ArithmeticException: / by zero at aboutassert.AssertStudy$1.run(AssertStudy.java:35) at aboutassert.AssertStudy.test03(AssertStudy.java:40) //使用断言 ThrowingRunnable throwingRunnable = new ThrowingRunnable() { @Override public void run() throws Throwable { System.out.println(1 / 0); } }; ArithmeticException arithmeticException = Assert.assertThrows(ArithmeticException.class, throwingRunnable); System.out.println(arithmeticExce ption); //控制台输出(这个是自己打印的,不然是不会有输出的) java.lang.ArithmeticException: / by zero
具体的使用,目前我还只在单元测试的时候使用了。后续有匹配的使用场景的话,会再次进行更新
标签:actual,断言,Object,Assert,简述,run,message,String From: https://www.cnblogs.com/wecantstop/p/16874090.html