|
Cactus協助您進行 In-Container
測試,其基本原理即讓Container實際建立相關的物件,例如HttpServletRequest、HttpServletResponse等等,
Cactus為您保留這些物件,讓您可以指定給所要測試的單元方法,這些物件實際上仍由Container管理,所以您的Servlet等所測試的單元方
法,會接近於真正運行於Container之中。 來看看Cactus在進行測試時的運作流程: ![]() 您會繼承XXXTestCase來撰寫您的測試案例,例如為Servlet作測試時,您會繼承ServletTestCase,在當中您可以定義 beginXXX()、setUp()、testXXX()、tearDown()、endXXX()等方法。
由上面大致的流程說明中可以明瞭,Cactus會產生兩個TestCase實例,一個在客戶端,一個在伺服端,客戶端的TestCase準備HTTP相關 訊息,分析傳回的訊息,收集測試結果並顯示之,伺服端的TestCase對Servlet進行實際測試,其運行流程就類似於單純的JUnit測試。 為了要與真實的Container資源進行互動,由Redirector Proxy接收客戶端請求,實際產生相關的資源。 雖然實際的測試流程如上介紹的有些繁瑣,但是實際上使用Cactus時是很簡單的,Cactus將大部份的細節都隱藏了起來,畢竟測試本身已經不容易,測試框架不能讓事情變得更為複雜。 |
|