国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

9. 測(cè)試替身

2018-02-23 16:23 更新

第 9 章?測(cè)試替身

Gerard Meszaros 在 [Meszaros2007] 中介紹了測(cè)試替身的概念:

有時(shí)候?qū)Ρ粶y(cè)系統(tǒng)(SUT)進(jìn)行測(cè)試是很困難的,因?yàn)樗蕾囉谄渌麩o(wú)法在測(cè)試環(huán)境中使用的組件。這有可能是因?yàn)檫@些組件不可用,它們不會(huì)返回測(cè)試所需要的結(jié)果,或者執(zhí)行它們會(huì)有不良副作用。在其他情況下,我們的測(cè)試策略要求對(duì)被測(cè)系統(tǒng)的內(nèi)部行為有更多控制或更多可見(jiàn)性。
如果在編寫(xiě)測(cè)試時(shí)無(wú)法使用(或選擇不使用)實(shí)際的依賴組件(DOC),可以用測(cè)試替身來(lái)代替。測(cè)試替身不需要和真正的依賴組件有完全一樣的的行為方式;他只需要提供和真正的組件同樣的 API 即可,這樣被測(cè)系統(tǒng)就會(huì)以為它是真正的組件!
--Gerard Meszaros

PHPUnit 提供的 getMockBuilder($type) 方法可以在測(cè)試中用來(lái)自動(dòng)生成對(duì)象,此對(duì)象可以充當(dāng)任意指定原版類(lèi)型(接口或類(lèi)名)的測(cè)試替身。在任何預(yù)期或要求使用原版類(lèi)的實(shí)例對(duì)象的上下文中都可以使用這個(gè)測(cè)試替身對(duì)象來(lái)代替。

在默認(rèn)情況下,原版類(lèi)的所有方法都會(huì)被替換為只會(huì)返回 null 的偽實(shí)現(xiàn)(其中不會(huì)調(diào)用原版方法)。使用諸如 will($this->returnValue()) 之類(lèi)的方法可以對(duì)這些偽實(shí)現(xiàn)在被調(diào)用時(shí)應(yīng)當(dāng)返回什么值做出配置。

局限性:final、private、與 static 方法

請(qǐng)注意,final、privatestatic 方法無(wú)法對(duì)其進(jìn)行上樁(stub)或模仿(mock)。PHPUnit 的測(cè)試替身功能將會(huì)忽略它們,并維持它們的原始行為。

警告

請(qǐng)關(guān)注一下這個(gè)事實(shí):參數(shù)管理方式已經(jīng)修改過(guò)了。在之前的實(shí)現(xiàn)中,將會(huì)克隆對(duì)象的所有參數(shù)。這樣就無(wú)法檢查傳遞給方法的是否是同一個(gè)對(duì)象。Example?9.15, “測(cè)試某個(gè)方法將會(huì)被調(diào)用一次,并且以某個(gè)特定對(duì)象作為參數(shù)?!?/a> 展示了新的實(shí)現(xiàn)方式在什么情況下會(huì)非常有用。Example?9.16, “創(chuàng)建仿件對(duì)象時(shí)啟用參數(shù)克隆”展示了如何切換回之前的行為方式。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)