JUnit學習筆記
開始學習JUnit In Action
所有單元測試框架都應該遵守的3條規則:
??? 1.每個單元測試都必須獨立于其它單元測試而運行.
??? 2.必須以單項測試為單位來檢測和報告錯誤
??? 3.必須易于定義要運行哪些單元測試.
JUnit提供Swing圖形界面
???? windows:? java -cp junit.jar;. junit.swingui.TestRunner junit.samples.AllTests
???? Unix: java -cp junit.jar:. junit.swingui.TestRunner junit.samples.AllTests
TestCase(測試用例)——擴展了JUnit的TestCase類的類。它以testXXX方法的形式包含一個或多個測試。一個test case把具有公共行為的測試歸入一組。在本書的后續部分,當我們提到測試的時候,我們指的是一個testXXX方法;當我們提及test case的時候,我們指的是一個繼承自TestCase的類,也就是一組測試.
TestSuite(測試集合)——一組測試。一個test suite是把多個相關測試歸入一組的便捷方式。例如,如果你沒有為TestCase定義一個test suite,那么JUnit就會自動提供一個test suite,包含TestCase中所有的測試
TestRunner(測試運行器)——執行test suite的程序。JUnit提供了幾個test runner,你可以用它們來執行你的測試。沒有TestRunner接口,只有一個所有test runner都繼承的BaseTestRunner。因此,當我們編寫TestRunner的時候,我們實際上指的是任何繼承BaseTestRunner的test runner類
TestListener(測試偵聽器) --- 多個對象同時報告一個測試的信息.
TestCase通過setUp和tearDown方法來自動創建和銷毀fixture。TestCase會在運行每個測試之前調用setUp,并且在每個測試完成之后調用tearDown。
概括地說,controller做這些事情:
·?????? 接受請求。
·?????? 對請求執行常用計算。
·?????? 選擇合適的請求處理器。
·?????? 路由請求,以使處理器可以執行相關的業務邏輯。
·?????? 可能會提供一個頂層的處理器用于處理錯誤和異常。
Controller是一個很好用的類,在很多應用中都可以看到它的身影。例如,在一個表現層模式中,一個web controller接受HTTP請求,并把HTTP參數、cookie、HTTP頭取出,可能使得HTTP元素易于被應用的其他部分訪問。Web controller會基于請求中的元素判斷出需調用的合適的業務邏輯組件(可能是在HTTP session、數據庫或者其他資源中的持久數據的幫助下做到這點)。Apache Struts框架就是web controller的一個例子。