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