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