1. 程式人生 > >Java筆記丨26 斷言及程式的測試

Java筆記丨26 斷言及程式的測試

斷言(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”);

}