在測試程序時,如何應對模擬外部資源和庫連接這一艱巨任務?基於組件的編程和解耦包相關性可以解決這個問題。基於組件的軟件開發作為促進代碼復用的一種手段而經常受到人們贊譽,另外它還有助於生成可測試代碼。Eric Allen用一些Jiazzi(一種使用Java語言進行基於組件編程的功能強大的自由工具)示例展示了這種編程概念。
測試優先編程(test-first programming)中反覆遇到的一個問題是,似乎不可能對程序的許多部分進行自動測試。特別當程序在很大程度上要利用外部資源和庫時,似乎很難對它進行測試,因為沒有很好的方法來模擬程序與這些外部資源的連接。
基於組件的軟件開發通過將系統分解為獨立的、可替換的組件,每個組件通過明確定義的接口進行交互,從而實現了鬆耦合。Jiazzi是一個支持Java語言基於組件編程的工具,它允許開發者:
Jiazzi允許定義組件模塊、接口契約、組件實現與組裝配置,通過模塊化設計實現高內聚、低耦合的系統架構。