作者:陳市明/Slipper Feng
摘自:http://www.tkk7.com/JPeanut
Junit
目前是
java
種最為流行的單元測試的框架,開發(fā)人員是編寫設(shè)計模式的三大牛人之一。
junit
靈活的使用了多種模式,使得擴(kuò)展非常之容易。他的擴(kuò)展是所有單元測試框架是最多的,但是很多擴(kuò)展都是直接繼承自
TestCase
,這個就導(dǎo)致用了這個擴(kuò)展就沒法使用其他的擴(kuò)展了,比如,用了
dbunit
就不能再用
easy struts
了(除非,我們對擴(kuò)展進(jìn)行重寫)。
? 為了解決這個問題,我在Junit之上還封裝了一層TestFrame,使得junit能夠很容易的同時使用多個擴(kuò)展。我們這里的設(shè)計思想是:
1.?
把擴(kuò)展寫成插件式,我只要通過寫一個
plugin
接口讓他集成進(jìn)我們的框架中
2.?
后期對架構(gòu)的功能擴(kuò)展完全可以通過插件實現(xiàn)。目前,已經(jīng)寫了
dbunit
,
struts-easy,imon
fk
,
JMS
電文的
plugin
。通過插件的方式,我們就可以很容易的解決
junit
的硬傷:測試數(shù)據(jù)硬代碼。
3.?
插件的添加,無需修改架構(gòu)及其原有的測試腳本,只需要在“項目的
TC
”中在注冊中心對插件注冊就可以獲得插件的所有的功能
4.?
架構(gòu)是面向?qū)椖康?,所有不同架?gòu)的項目可以使用同一套底層架構(gòu),不一樣的只是“項目
Tc
”
5.?
Test Frame Work
、所有的
plugin
和項目
TC
都可以各自獨立打成
jar
,這樣框架可以很方便的進(jìn)行局部升級
?
(呵呵,有了電文插件后,就很容易的對我們的項目進(jìn)行自動化的單元測試。在次之前,我們一直沒有對電文進(jìn)行有效的自動化的單元測試,
mock
技術(shù)可以實現(xiàn),但是,對于需求變化
mock
沒有很好的解決辦法)