mockplus教程 mock框架做行為測試有什么弊端?
mock框架做行為測試有什么弊端?在單元測試中,我們經(jīng)常需要做一些模擬操作?,F(xiàn)在有一些很好的框架可以做這些事情,比如easymack,它在大多數(shù)情況下工作得很好,但是在一些結(jié)構(gòu)的設(shè)計(jì)上卻無能為力。Ea
mock框架做行為測試有什么弊端?
在單元測試中,我們經(jīng)常需要做一些模擬操作?,F(xiàn)在有一些很好的框架可以做這些事情,比如easymack,它在大多數(shù)情況下工作得很好,但是在一些結(jié)構(gòu)的設(shè)計(jì)上卻無能為力。Easymock和其他許多模擬框架只能模擬一些公共的、非靜態(tài)的或final方法。在大多數(shù)情況下,這是沒有問題的。它可以處理大多數(shù)問題,但是當(dāng)測試代碼包含一些靜態(tài)方法時(shí)。Cactus是一個(gè)基于JUnit框架的簡單測試框架,用于對服務(wù)器Java代碼進(jìn)行單元測試。cactus框架的主要目標(biāo)是能夠在服務(wù)器端使用servlet對象對Java方法進(jìn)行單元測試,比如HttpServletRequest,它是單元測試的框架。例如,如果你編寫了一個(gè)程序,在進(jìn)行函數(shù)測試,即整體測試之前,你想知道它是對還是錯(cuò),你可以用這些工具編寫一個(gè)單元測試用例,分別測試這個(gè)類或程序的某個(gè)部分
~]@runwith(PowerMockRunner.class類)
@PrepareForTest(助手類)//1. 添加要初始化的類,它是構(gòu)造函數(shù)的類
public class helpertest{
@Mock
private Something mockSomething
@InjectMocks
private Helper Helper
@Test
public void doSomething()拋出異常{
String argument argPowerMockito.whenNew公司( 什么。班級). witharguments(參數(shù))。然后返回(mocksomething)//2。添加要構(gòu)造的函數(shù)的類、參數(shù)和返回值
//3。調(diào)用所需的測試方法3.劑量測定(參數(shù))
//verify
驗(yàn)證(mocksomething)。Doit()
}
]公共類幫助程序{
public void something(string ARG){
something something=New something(ARG)做點(diǎn)什么吧Jmockit基于JavaSE5java.lang.instrument工具包開發(fā)時(shí),內(nèi)部使用ASM庫動態(tài)修改Java字節(jié)碼,使Java作為靜態(tài)語言可以像動態(tài)語言一樣腳本語言、動態(tài)設(shè)置mock對象私有屬性、模擬靜態(tài)、私有方法行為等,對于手機(jī)開發(fā)、嵌入式開發(fā)等需求,使用jmockit可以在代碼盡可能簡潔的情況下輕松解決很多測試場景,或者如果您不想對測試中的代碼進(jìn)行任何更改。