[英]Mocking a concrete class using EasyMock
是否可以使用 EaskMock 模拟一个具体的类? 如果是这样,我该怎么做?
请参阅EasyMock 类扩展文档并从 SourceForge 项目下载。 不过,您不能模拟最终方法。
编辑:正如评论中所指出的,这现在是 v3 及更高版本的 EasyMock 的一部分。
Powermock扩展了 EasyMock 并允许您模拟具体类型,甚至是最终方法和静态方法。
PowerMock 是一个框架,它扩展了其他模拟库,例如具有更强大功能的 EasyMock。 PowerMock 使用自定义类加载器和字节码操作来模拟静态方法、构造函数、最终类和方法、私有方法、删除静态初始化程序等。
是: http ://easymock.org/EasyMock2_4_ClassExtension_Documentation.html
从 v3.0 开始,EasyMock 类扩展已集成到 EasyMock; 请参阅发行说明。
创建模拟时,只需使用 EasyMock 类的org.easymock.classextension版本。 结果将是可铸造的。
这是最近的链接 - http://easymock.org/EasyMock3_2_ClassExtension_Documentation.html
您可以使用“PowerMock.createMock”方法模拟对象。 参考链接。
例子
File file = PowerMock.createMock(File.class);
EasyMock.expect(file.getName()).andReturn("TestFile");
EasyMock.expect(file.getAbsolutePath()).andReturn("/Users/HariKrishna/TestFile");
如果要部分模拟某些方法,可以使用“PowerMock.createPartialMock”方法。 参考链接。
例子
EmployeeService empService = PowerMock.createPartialMock(EmployeeService.class, "getEmployeeFirstNames");
EasyMock.expect(empService.getEmployeeFirstNames(emps)).andReturn(empNames);
有关更多示例,请参阅本教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.