在junit中主要使用了觀察者模式、組合模式、命令模式、模板模式這4中模式。
那麼在junit中為了要用到觀察者模式呢?我們知道,我們使用ant、eclipse等工具進行單元測試,但是他們測試後的結果卻是以不同的形式去表示的,也就是出現了多樣化,比如,ant測試後的結果是使用報表的形式表示的,而eclipse是則是以圖形介面的形式去表示,那麼在此junit中就使用觀察者模式去設計的,因為觀察者模式時物件間一對多關係的。
而在進行junit測試時,當測試類很多時。比如有dao層的測試類,service層的測試類,如果我們需要在同一時間來測試所有的類,這時junit就是使用組合模式來解決這個問題的。它將測試的物件以樹的形式來表示。這樣只要呼叫了根節點,就能遍歷測試到所有的類。
那麼命令模式在junit中又起到了何種作用了?我們知道命名模式的定義是將請求操作封裝成乙個個的物件。因為我們測試的方法名是各不相同的,我們需要將其相互隔離,這是我們就可以使用命令模式將其轉換成乙個個的物件,這樣在測試時不需要關心其具體的細節,僅以一種命令的形式去呼叫就可以了。
而模板模式在junit中也起著一種不可或缺的作用,模板模式定義是這樣的在父類定義演算法執行的骨架,具體延遲到子類中去實現。這樣當我們在測試時需要在測試的方法之前,加入一些對測試有用的資料初始化操作或測試完後的清理工作。
執行流程:
先定義乙個被觀察者,然後將觀察者新增到被觀察者的觀察者列表中去。這是使用組合模式將測試用例以樹的形式表示,junit中的testsuite就是乙個樹枝,而testcase就是乙個樹葉,這在測試執行時,就可以呼叫乙個根節點,就能夠執行到裡面所有的測試方法了。當然在此時同樣使用了命令模式對測試方法進行封裝,將其轉換成了乙個個命令物件。這樣我們在測試時就只要以命令的形式去呼叫就可以了。在對於模板模式的使用則延遲到testcase的子類中去了,也就是我們的測試類,在測試類的測試方法前我們可以重寫父類模板中定義好的setup方法,進行資料初始化操作,而teardown則是在測試方法執行之後執行,用例當前方法的測試,可以在此編寫一些掃尾的工作,如資料清理,資源釋放等。而在測試時一旦丟擲異常,就會呼叫被觀察者,將測試資訊傳遞給觀察者,再由觀察者以相應的形式顯示給客戶。
一 Junit單元測試
一 junit的安裝與測試原則 1.匯入junit包,也可以使用eclipse裡自帶的junit.2.在src目錄下建立服務 3.建立測試類 基本原則 1.在eclipse中建立source folder 命名為test 2.建立乙個測試類的包,建議包的名稱與要測試類的包一致。4.junit3 與 ...
Junit 單元測試
測試類package com.lin.music item import android.content.contentresolver import android.content.context import android.database.cursor import android.net....
Junit單元測試
最近在寫一模組的 不能再像原來一樣不認真考慮測試了,因為看看junit如何寫單元測試,這裡作一些筆記。2.關於使用junit的目的。主要有四種 摘自某參考資料。對此,我覺得我是想測試某個類中的某幾個方法,因為覺得這幾個方法比較容易出問題,不過這樣是顯得有些不嚴謹了。其實往往測關鍵方法的時候,其中也都...