DI讓測試驅動開發不再是一句空話

          DI讓測試驅動開發不再是一句空話
如今,各種開發方式層出不窮,像XP開發,敏捷軟件開發,測試驅動開發,等等。
也許明天有會冒出來很多不同的東東,所以說阿,軟件這個行業總能給你一些新的東東。

這裏先介紹下相關概念。  首先是時下非常流行的概念IOC(Inversion of control),而IOC有向接口一樣,有很多種實現策略,其中工人比較不錯的是DL(Dependency Lookup),DI(Dependency Injection);而其中的DI又有常用的2種實現策略Setter Injection 和 Constructor Injection .

由於之前接觸了一點點Spring這個優秀的框架,發現了他卻又很多好處,其中一個就是方便了測試。不知道大家以前的Web系統是否方便寫一些測試用例呢?例如JUnit集成測試。有些比較舊的項目中,應用代碼太依賴於容器了,在應用代碼中不時出現JNDI就是出現容器的API,這使得應用代碼在脫離容器的情況下不可能運行,同時,這對集成測試也造成了一種難以消除的壁壘。

用過Spring 的人知道,Spring這個輕量級容器是一個非常不錯的框架,其中它支持Setter Injection 和 Constructor Injection .這2種注入方式,我們一般情況下在應用代碼中都使用Setter Injection,通常學要Constructor Injection 可以用Setter Injection代替,在應用代碼重構時,通常也是這樣。這樣應用代碼中不需要再依賴容器,應用代碼中用到的所有資源都是通過JavaBean設置進來,代碼本身不知道它從哪裏來,也不需要知道它如何來的。這樣,我們的應用代碼在開發階段,對主要的類和方法就可以方便的利用mock對象進行Junit測試了。
               測試驅動開發因此不再是一句空話。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章