easymock為什么現(xiàn)在用不了 mock框架做行為測試有什么弊端?
mock框架做行為測試有什么弊端?在單元測試中,我們經(jīng)常需要做一些模擬操作。現(xiàn)在有一些很好的框架可以做這些事情,比如easymack,它在大多數(shù)情況下工作得很好,但是在一些結(jié)構(gòu)的設(shè)計上卻無能為力。Ea
mock框架做行為測試有什么弊端?
在單元測試中,我們經(jīng)常需要做一些模擬操作?,F(xiàn)在有一些很好的框架可以做這些事情,比如easymack,它在大多數(shù)情況下工作得很好,但是在一些結(jié)構(gòu)的設(shè)計上卻無能為力。Easymock和其他許多模擬框架只能模擬一些公共的、非靜態(tài)的或final方法。在大多數(shù)情況下,這是沒有問題的。它可以處理大多數(shù)問題,但是當(dāng)測試代碼包含一些靜態(tài)方法時。Cactus是一個基于JUnit框架的簡單測試框架,用于對服務(wù)器Java代碼進(jìn)行單元測試。cactus框架的主要目標(biāo)是能夠在服務(wù)器端使用servlet對象對Java方法進(jìn)行單元測試,比如HttpServletRequest,它是單元測試的框架。例如,如果你寫了一個程序,在函數(shù)測試之前,也就是整體測試之前,你想知道它是對是錯,你可以用這些工具來編寫一個單元測試用例來分別測試這個類或者程序的某個部分是對的還是錯的PowerMock.private文件(EC,“getContext”)。AndReturn(CON)有問題,getContext是靜態(tài)的,easymock expect基于ThreadLocal來保存您調(diào)用的最后一個方法。所以靜態(tài)方法調(diào)用不能用這種方式處理。