mock怎么模拟数据 如何mock静态方法?
如何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( 你好。平等(“你好,嘲笑动物世界!“}
在单元测试中,经常需要一些模拟操作。现在有一些很好的框架可以做这些事情,比如easymack,它在大多数情况下工作得很好,但是在一些结构的设计上却无能为力。Easymock和其他许多模拟框架只能模拟一些公共的、非静态的或final方法。在大多数情况下,这是没有问题的。它可以处理大多数问题,但是当测试代码包含一些静态方法时。Cactus是一个基于JUnit框架的简单测试框架,用于对服务器Java代码进行单元测试。cactus框架的主要目标是能够在服务器端使用servlet对象对Java方法进行单元测试,比如HttpServletRequest,它是单元测试的框架。例如,如果您编写一个程序,在进行功能测试(即整体测试)之前,想知道它是对还是错,可以使用这些工具编写一个单元测试用例,分别测试类或部分程序
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。