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