繁体   English   中英

使用 EasyMock 模拟一个具体的类

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM