gpt4 book ai didi

junit - 如何使用Mockito模拟 protected 方法?

转载 作者:行者123 更新时间:2023-12-03 11:48:36 31 4
gpt4 key购买 nike

我正在使用Mockito 1.9.5。如何模拟 protected 方法返回的内容?我有这种 protected 方法……

protected JSONObject myMethod(final String param1, final String param2)
{

}

但是,当我尝试在JUnit中执行此操作时:
    final MyService mymock = Mockito.mock(MyService.class, Mockito.CALLS_REAL_METHODS);        
final String pararm1 = “param1”;
Mockito.doReturn(myData).when(mymock).myMethod(param1, param2);

在最后一行,出现编译错误“方法'myMethod'不可见。”如何使用Mockito模拟 protected 方法?如果可以的话,我愿意升级我的版本。

最佳答案

这不是Mockito的问题,而是普通的旧Java。在调用方法的地方,您没有可见性。这就是为什么它是编译时问题而不是运行时问题的原因。

几个选项:

  • 在与模拟类
  • 相同的包中声明您的测试
  • 如果可以
  • ,则更改方法的可见性
  • 创建一个本地(内部)类来扩展模拟的类,然后模拟该本地类。由于该类是本地的,因此您可以看到该方法。
  • 关于junit - 如何使用Mockito模拟 protected 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092705/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com