我有一个具有以下流程的功能:
public static void func(
ClassA a, ClassB b) {
a.innerfunc().innerfunc().addListener(
new Listener<IUser>() {
@Override
public void onDataReceived(IUser response) {
mAttrDict = response.toDict();
}
@Override
public void onError(ErrorClass error) {
a.getLogger()
.error("log-message");
}
};
}
我想存根addListener并发送一个自定义dict进行测试。 用powermock以某种方式可能吗? 谢谢
指某东西的用途 PowerMock 对于糟糕的设计几乎都是投降。
在你的情况下,你的代码看起来违反了“信息隐藏/封装”,导致*链破坏“调用a.innerfunc().innerfunc()
您应该转换代码,以便可以将需要模拟的对象作为可以使用vanilla Mockito创建的注入依赖项传递给您测试的代码。