Java- 斷言及程式的測試JUnit
阿新 • • 發佈:2019-02-10
斷言(assert)
- 斷言的格式:
assert 表示式;
assert 表示式: 資訊;
- 在除錯程式時,如果表示式不為true,則程式會嘗試異常,並輸出相關的錯誤資訊。起到對程式的檢測的作用。
public class Assertion{
public static void main(String[] args) {
assert hypotenuse(3, 4)==5 : "algorithm error";
}
static double hypotenuse(double x, double y){
return Math.sqrt(x*x + y*y + 1);
}
}
Assert的編譯與執行
- 編譯
- 只有在JDK1.4及以上的版本中才可以使用斷言
- 在1.4以前的版本中,需要通過
-source
選項來指明版本
- 執行
- 在執行時,要使assert起作用,則在執行時,要使用
-ea
即-enableassertions
選項
- 在執行時,要使assert起作用,則在執行時,要使用
程式的測試及JUnit
- 程式的修改是經常要進行的過程,必須保證程式在修改後其結構仍然是正確的
- 在編寫程式程式碼的同時,還編寫測試程式碼來判斷這些程式是否正確
- 這個過程稱為“測試驅動”的開發過程
- 從而保證了程式的開發效率
程式中的錯誤
- 程式中的錯位可以分為三大類
- 語法錯位(Syntax error)
- 編輯、編譯器發現
- 執行錯誤(Runtime error)
- 異常處理機制
- 邏輯錯誤(Logic error)
- 除錯(debug)、單元測試(unit test) -
- 語法錯位(Syntax error)
單元(JUnit) 測試
- 在eclipse中
- 專案右鍵 - New - Junit Test Case
@Test
來標註測試函式- 在測試中常用的語句如下:
fail(msg);
// 表示程式出錯assertEquals(arg1, arg2);
// 表示程式要保證兩個引數要相等assertNull(arg);
// 表示引數要為null
程式除錯(debug)
程式的除錯
- 在IDE中,用debug as…
- 進入到除錯檢視(debug perspective)
除錯的手段
- 斷點(breakpoint),程式的暫停點
- 跟蹤(trace),觀察程式的執行流程
- 逐語句執行,會進入呼叫的函式體
- 逐過程執行,跳過進入呼叫的函式體
- 跳出函式
- 執行到游標處
- 監視(watch),變數的變化過程
- 即時監視,滑鼠指向變數,即可顯示
- 快速監視,右鍵- inspector
- 新增監視,右鍵 - watch
- 還可以看:呼叫堆疊等