4 回答
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
google mock按道理講只能mock虛函數(shù),這是因?yàn)樵?a >單元測(cè)試中,首先定義一個(gè)mock類(mockTest),public繼承要mock的函數(shù)(fun1())所在的類(Test),在mockTest中調(diào)用宏MOCK_METHODn,該宏應(yīng)該是在mockTest中聲明一個(gè)同名的虛函數(shù)(virtual fun1()),因?yàn)?a >測(cè)試用例中有關(guān)fun1()的函數(shù)都是通過(guò)mockTest對(duì)象進(jìn)行調(diào)用的,因此,所有涉及到fun1()的函數(shù)均是mockTest類中重新定義的那個(gè)。對(duì)于非虛函數(shù),由于其可能在類中的其它函數(shù)fun2()中被調(diào)用,假設(shè)mockTest并沒(méi)有重新定義fun2(),雖然使用了mockTest類對(duì)象去調(diào)用fun2(),但是fun2()是從Test中繼承的,fun2()中調(diào)用的fun1()必然是Test中的原始函數(shù),并不是mock之后的fun1(),所以我覺(jué)得這就是google mock 無(wú)法mock非虛函數(shù)的原因。
TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
可以把mock理解為空白對(duì)照。嚴(yán)格來(lái)講,mock是指只加轉(zhuǎn)染試劑不加病原體,以排除轉(zhuǎn)染試劑對(duì)細(xì)胞的影響;但是有時(shí)候可能實(shí)驗(yàn)者連轉(zhuǎn)染試劑都沒(méi)有加,直接用沒(méi)有處理過(guò)的細(xì)胞作為mock對(duì)照。再有,如果轉(zhuǎn)染的不是病原體,而是質(zhì)粒,轉(zhuǎn)入空白質(zhì)粒的細(xì)胞也可以作為mock
TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果被測(cè)程序、系統(tǒng)或?qū)ο?,我們稱之為A,那么Stub和Mock指的并不是A,而是測(cè)A的過(guò)程中,A需要與之交互的程序、系統(tǒng)或?qū)ο驜。
Stub,也即“樁”,很早就有這個(gè)說(shuō)法了,主要出現(xiàn)在集成測(cè)試的過(guò)程中,從上往下的集成時(shí),作為下方程序的替代。作用如其名,就是在需要時(shí),能夠發(fā)現(xiàn)它存在,即可。就好像點(diǎn)名,“到”即可。
Mock,主要是指某個(gè)程序的傀儡,也即一個(gè)虛假的程序,可以按照測(cè)試者的意愿做出響應(yīng),返回被測(cè)對(duì)象需要得到的信息。也即是要風(fēng)得風(fēng)、要雨得雨、要返回什么值就返回什么值。
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果被測(cè)程序、系統(tǒng)或?qū)ο?,我們稱之為A,那么Stub和Mock指的并不是A,而是測(cè)A的過(guò)程中,A需要與之交互的程序、系統(tǒng)或?qū)ο驜。Stub,也即“樁”,很早就有這個(gè)說(shuō)法了,主要出現(xiàn)在集成測(cè)試的過(guò)程中,從上往下的集成時(shí),作為下方程序的替代。作用如其名,就是在需要時(shí),能夠發(fā)現(xiàn)它存在,即可。就好像點(diǎn)名,“到”即可。Mock,主要是指某個(gè)程序的傀儡,也即一個(gè)虛假的程序,可以按照測(cè)試者的意愿做出響應(yīng),返回被測(cè)對(duì)象需要得到的信息。也即是要風(fēng)得風(fēng)、要雨得雨、要返回什么值就返回什么值。
添加回答
舉報(bào)
