【发布时间】:2013-04-19 17:19:11
【问题描述】:
对于集成测试,我需要在 java 服务客户端中模拟特定方法,而不会破坏其中的其余信息。它没有自构造函数,所以这样的解决方案是不可能的:
private DBClient mockClient = new DBClient(alreadyExistingClient){
@Override
void deleteItem(Item i){
//my stuff goes here
}
};
有没有办法模拟 deleteItem 方法,以便将凭据、端点等保存在现有的 DBClient 对象中?
编辑:在这种情况下,mockito 不可用
【问题讨论】:
-
mockito没有被提及,但它为此提供了一个spy routine -
Mockito 在这种情况下不是可用的框架。
-
如果您想使用 Powermock + EasyMock 进行部分模拟,请参见此处:code.google.com/p/powermock/wiki/MockPartial
-
虽然这会创建一个新对象,但它没有必要的内部状态来像我需要的那样运行。
标签: java easymock powermock white-box