微軟新版自動白盒測試框架Pex簡介
白盒測試是軟件測試的一個基本概念,而白盒測試的工具可以減少測試員手動編寫測試所花費的時間與經歷。下面看看微軟***發布的白盒測試框架Pex的情況。
不久前微軟發布了新版本的Pex框架,其中的Moles組件可用于模擬框架中包括靜態成員在內的幾乎所有成員,大幅提高了對測試的支持程度。
Pex是微軟研究院構建的自動白盒測試框架,它的目標是讓程序員減少手動編寫大量單元測試的情況。Pex允許開發人員編寫單獨的參數化測試方法,并根據測試方法的邏輯分支自動生成測試數據及Assert語句。雖然開發人員還是需要手動編寫單元測試,但是Pex可以確保對代碼進行了充分的測試。
Pex附帶一個迂回框架(Detour Framework)Stubs。與其他如Rhino Mocks,Moq框架不同,Stubs并非使用Emit的方式動態創建類型,而是生成類型安全,可重構,可調試的源代碼。Stubs框架會為每個方法生成一個委托類型的成員,開發人員可以通過委托的指定方法的行為。
新版的Pex框架中發布了一個名為Moles的組件,它可以被看作是Stubs框架的擴展,可用于模擬所有的.NET成員,包括靜態方法,非虛方法以及密閉類型。例如,OperationContext.Current靜態屬性在IIS環境外的情況下總是返回null,但使用Moles之后,測試方法便可以擺脫IIS的依賴:
目前Moles的功能還不夠完整,它不支持對構造函數及外部方法的模擬,以及mscorlib中一部分和CLR集成過于緊密的類型。
您可以從微軟研究院網站上下載Pex框架,更多有關Pex、Stubs和Moles的信息可參考它們的主頁。
【編輯推薦】