使用powermock存储嵌套的私有异步函数

问题描述 投票:0回答:1

我有一个具有以下流程的功能:

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以某种方式可能吗? 谢谢

java mockito powermockito
1个回答
0
投票

指某东西的用途 PowerMock 对于糟糕的设计几乎都是投降。

在你的情况下,你的代码看起来违反了“信息隐藏/封装”,导致*链破坏“调用a.innerfunc().innerfunc()

您应该转换代码,以便可以将需要模拟的对象作为可以使用vanilla Mockito创建的注入依赖项传递给您测试的代码。

© www.soinside.com 2019 - 2024. All rights reserved.