第一部分 認識JUnit
第1章 JUnit起步
JUnit誕生
1997年,Erich Gamma 和 Kent Beck 針對Java建立了一個簡單但有效的單元測試框架,叫作JUnit。
Erich 是《設計模式》的四大做者之一。Kent因爲他在軟件開發方面的開創性成就「極限編程」而廣爲人知。
單元測試definition
單元測試檢查一個獨立工做單元的行爲。在Java應用程序中,獨立工做單元常常是(但不老是)一個獨立方法。相比之下,集成測試和驗收測試檢查的是各類組件如何交互。一個工做單元就是一項任務,不直接依賴於其餘任何任務的完成。
單元測試一般關注的是一個方法是否遵循了它的API契約中的條款。
API契約definition
API契約是一種觀點:把一個應用程序編程接口(API)看成是在調用者與被調用者之間的正式協議。
一般,單元測試經過證實預期的行爲來幫助定義API契約。
單元測試框架應遵循的三大規則:
一、每一個單元測試都必須獨立於其餘全部單元測試而運行;
二、框架應該以單個測試爲單位來檢測和報告錯誤;
三、應該易於定義要運行哪些單元測試。
使用Java的反射(reflection和introspection)功能,程序能夠檢查自身並決定要運行任何遵循某種命名協定的方法,例如,以「test」開頭的方法。
JUnit的設計目標:
一、框架必須幫助咱們編寫有用的測試;
二、框架必須幫助咱們建立具備長久價值的測試;
三、框架必須幫助咱們經過複用代碼來下降編寫測試的成本。
安裝JUnit
JUnit編碼規範:
1.測試類必須被聲明爲public,類名以「Test」爲後綴;JUnit3的測試類要extends TestCase類,而JUnit4不須要。
2.測試方法以test爲前綴,以@Test註釋
代碼練習:
Calculator.java
CalculatorTest1.java
CalculatorTest2.java
CalculatorTest3.java
TestAssert.java