Java筆記丨26 斷言及程式的測試
阿新 • • 發佈:2018-12-17
斷言(assertion)
assertion的格式是:
assertion表示式;
assertion表示式:資訊;
在除錯程式時
如果表示式不為true,則程式會產生異常,並輸出相關的錯誤資訊。
示例:Assertion.java
class Assertion { public static void main(String[] args) { assert hypotenuse(3,4)==5 : "演算法不正確"; } static double hypotenuse( double x, double y ){ return Math.sqrt( x*x + y*y + 1); //這裡演算法不正確 } }
Assert的編譯及執行
編譯
只有在JDK1.4及以上的版本中才可以使用斷言
具體地說,在早期的JDK版本(1.4)中編譯時,要通過-source選項來指明版本,如:
javac -deprecation -source 1.4 -classpath . Assertion.java
執行
在執行時,要使assert起作用,則在執行時,使用選項(-ea,即-enableassertions)。如:
java -ea -classpath . Assertion
程式的測試及JUnit
程式的修改是經常要進行的過程,必須保證程式在修改後其結果仍然是正確的
在編寫程式碼的同時,還編寫測試程式碼來判斷這些程式碼是否正確
這個過程稱為“測試驅動”的開發過程,從而保證了程式碼的質量,減少了後期的查錯與除錯的時間,所以實際上它提高了程式的開發效率
JUnit
在Java測試中,經常使用JUnit框架:參見http://www.junit.org
現在大多數Java整合開發工具都提供了對JUnit的支援
在Eclipse中
專案右鍵-New-Junit Test Case
專案右鍵-Run as-Junit Test
在NetBeans
專案右鍵-新建-Junit測試
執行-測試,或者直接按Alt+F6即可
測試函式
@Test來標註測試函式
在測試中,常用語句如下:
fail(資訊);//表示程式出錯
assertEquals(引數1,引數2);//表示程式要保證兩個引數要相等
assertNull(引數);//表示引數要為null
@Test
public void testSum20{
HelloWorld a=new HelloWorld();
assertEquals(a.sum(0,100),100);
//fail(“Not yet implemented”);
}