Mock:關(guān)注行為驗(yàn)證。細(xì)粒度的測試,即代碼的邏輯,多數(shù)情況下用于單元測試。 何時(shí)使用Mock:
Mock的優(yōu)點(diǎn):
Mock的缺點(diǎn):
Stub:關(guān)注狀態(tài)驗(yàn)證。粗粒度的測試,在某個(gè)依賴系統(tǒng)不存在或者還沒實(shí)現(xiàn)或者難以測試的情況下使用,例如訪問文件系統(tǒng),數(shù)據(jù)庫連接,遠(yuǎn)程協(xié)議等。 何時(shí)用Stub:需要用到Mock或者Stub的情況,往往是測試的代碼存在依賴,當(dāng)這種依賴難以實(shí)現(xiàn)或者不穩(wěn)定的時(shí)候可以考慮使用Stub策略,例如,需要測試的系統(tǒng),可能需要訪問數(shù)據(jù)庫,依賴于運(yùn)行環(huán)境(安全性,存儲(chǔ),Web Service),或者需要訪問遠(yuǎn)程文件系統(tǒng),訪問遠(yuǎn)程協(xié)議(HTTP,SOAP)等。 由于現(xiàn)存的應(yīng)用的太復(fù)雜或者過于脆弱,修改它需要大量的人天。諸如不同系統(tǒng)之間的集成測試,類屬于粗粒度的測試皆可考慮使用Stub。 Stub的優(yōu)點(diǎn):
Stub的缺點(diǎn):
|
|