最理想的組件是只專注于自身工作的組件,它沒有其它額外的邏輯。不過按照這種標準,目前大部分的代碼都是不符合的。因此,目前在開源軟件界出現了一些輕量級的容器框架,典型的如上文提到的PicoContainer和spring。他們的定位就是提供一個對組件管理的統一模式,而組件可以單獨的使用,也可以放在另一個容器中,容器僅僅只是為組件提供了一些額外的功能,和組件本身沒有直接的依賴。
為什么我們說接口比繼承好,很重要的一個原因就是接口更加靈活,組件的依賴性更弱,同樣的,目前另一種做法則是采用一些標記性的語言來實現比接口更大的靈活度。例如基于xml的配置文件,以及J2SE1.5中將要引入的屬性。
組件的測試
組件和容器的依賴脫離為組件測試提供了一個很好的環境。我們在測試一節中討論過容器內測試往往是比較麻煩的,其原因就是在于上面所說的組件污染問題。例如在 spring框架中,組件是一個標準的JavaBean,你可以直接編寫代碼來設置組件的屬性和定義組件之間的依賴關系(適用于自動化測試),也可以把這項工作交給spring容器(適用于開發和部署)。
組件測試在測試的分類中屬于集成測試。
文章來源于領測軟件測試網 http://www.kjueaiud.com/