卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

java開發(fā)mock測試接口 mock框架做行為測試有什么弊端?

mock框架做行為測試有什么弊端?在單元測試中,我們經(jīng)常需要做一些模擬操作?,F(xiàn)在有一些很好的框架可以做這些事情,比如easymack,它在大多數(shù)情況下工作得很好,但是在一些結(jié)構(gòu)的設(shè)計(jì)上卻無能為力。在大

mock框架做行為測試有什么弊端?

在單元測試中,我們經(jīng)常需要做一些模擬操作。現(xiàn)在有一些很好的框架可以做這些事情,比如easymack,它在大多數(shù)情況下工作得很好,但是在一些結(jié)構(gòu)的設(shè)計(jì)上卻無能為力。在大多數(shù)情況下,它只能處理一些靜態(tài)方法,例如easy final。Cactus是一個(gè)基于JUnit框架的簡單測試框架,用于對(duì)服務(wù)器Java代碼進(jìn)行單元測試。cactus框架的主要目標(biāo)是能夠在服務(wù)器端使用servlet對(duì)象對(duì)Java方法進(jìn)行單元測試,比如HttpServletRequest,它是單元測試的框架。例如,如果你編寫了一個(gè)程序,在進(jìn)行函數(shù)測試,即整體測試之前,你想知道它是對(duì)還是錯(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公司( 什么。班級(jí)). 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)什么吧()

}

mock構(gòu)造方法?

因?yàn)閙ockito使用繼承來實(shí)現(xiàn)mock,所以使用cglib生成mock對(duì)象來執(zhí)行,而不是真正的對(duì)象。對(duì)于mock實(shí)例的方法,可以在子類中重寫,而靜態(tài)方法不能被子類重寫,因此mockito不能模擬靜態(tài)方法。但是powermock可以模擬靜態(tài)方法,因?yàn)樗苯釉谧止?jié)碼上工作,比如:importorg.powermock.api. mockito.PowerMockitoimportorg.powermock.core公司. classloader.annotations.PrepareForTestimportorg.powermock.modules模塊. testng.PowerMockTestCaseimport導(dǎo)入org.testng.Assertimportorg.testng.annotations注釋. 測試@PrepareForTest( 抽象動(dòng)物類)公共類AbstractAnimalTest擴(kuò)展了PowerMockTestCase{@Testpublic void shouldGetMockedHello(){PowerMockito.mockStatic文件( 抽象動(dòng)物類) 什么時(shí)候( 抽象動(dòng)物.getHello())。然后返回(“你好,模仿動(dòng)物世界?。┳址畣柡蛘Z=抽象動(dòng)物.getHello() Assert.assertTrue( 你好。平等(“你好,嘲笑動(dòng)物世界!"))}}