Java静态方法是什么 如何mock静态方法?
如何mock静态方法?因为mockito使用继承来实现mock,并使用cglib来生成mock对象,而不是真正的对象来执行。对于mock实例的方法,可以在子类中重写,而静态方法不能被子类重写,因此mo
如何mock静态方法?
因为mockito使用继承来实现mock,并使用cglib来生成mock对象,而不是真正的对象来执行。对于mock实例的方法,可以在子类中重写,而静态方法不能被子类重写,因此mockito不能模拟静态方法。但是powermock可以模拟静态方法,因为它直接在字节码上工作,比如:importorg.powermock.api. mockito.PowerMockitoimportorg.powermock.core公司. classloader.annotations.PrepareForTestimportorg.powermock.modules模块. testng.PowerMockTestCaseimport导入org.testng.Assertimportorg.testng.annotations注释. 测试@PrepareForTest( 抽象动物类)公共类AbstractAnimalTest扩展了PowerMockTestCase{@Testpublic void shouldGetMockedHello(){PowerMockito.mockStatic文件( 抽象动物类) 什么时候( 抽象动物.getHello())。然后返回(“你好,模仿动物世界!)字符串问候语=抽象动物.getHello() Assert.assertTrue( 你好。平等(“你好,嘲笑动物世界!"))}}