当前位置: 首页 > 知识库问答 >
问题:

用Mockito/PowerMockito模拟私有final static对象

郎志
2023-03-14

我目前正试图模拟类中的私有final static对象。我的目标似乎没有被恰当地模仿。

示例:
代码:在主类中

public class Main {

    private final static serviceA obj = new serviceA();

    public somemethod { return true; }

}

嘲笑:在我的测试课上,我有

Public class TestMain {

    private Main mainObj;
    private static  serviceA obj;

    @Before
    public void setupBeforeTest() {

        obj = Mockito.mock(serviceA.class);
        PowerMockito.whenNew(serviceA.class).withNoArguments().thenReturn(obj);
        mainObj= Mockito.spy(new Main());
    }
}

但是obj不返回我在执行时指定的值

Mockito.when(obj.returnsFalseMethod()).thenReturn(false);

并将实际运行obj的代码。returnsFalseMethod()

任何建议都将是有帮助的,我也不能改变Main类中的任何代码,谢谢。

共有1个答案

岳英耀
2023-03-14

我没有意识到你必须准备创建对象的类。我准备了每个类,除了实例化对象的类。

 类似资料:
  • 我试图模拟一个私有方法(executeGetRequest),在我声明要为私有方法返回的模拟的那一行中,私有方法实际上是用null参数执行的,因此抛出了一个NullPointerException。 VlcPlayerMinimal。爪哇: VlcPlayerMinimalTest。爪哇: 堆栈跟踪: 它似乎PowerMockito实际上是调用的方法,我试图在行PowerMockito.do返回(

  • 有人能帮帮我吗?提前谢了。

  • 问题内容: IDK(是否重复),但我确定找不到相关项目。我一直期望这真的很简单,因为通过反射它非常简单,但是我宁愿使用正确的工具来完成它。 澄清:旧版代码。没有吸气剂/二传手。 为此使用Whitebox是否正确?我以为是“超限”,即内部API的一部分?…或者那是严格的Mockito吗? 问题答案: 请参阅。 例如-给定的类需要测试: 具有以下私有实例: 然后可以用来设置的私有状态,以便可以对其进行

  • 我有一门课看起来像这样: 我想使用Mockito和Powermock为此编写一个单元测试。我知道我可以这样模仿私有方法: 但是我如何告诉它抛出异常呢?我知道会是这样的: 那里有什么? 请注意,异常是一个私有内部类,因此我不能只执行,因为从单元测试中无法访问。

  • 我试图在测试的类中模拟一个私有方法,如下所示。 现在我需要测试方法和mock。 我尝试创建间谍的上述类,但该方法得到调用时,我这样做下面 在第二行本身被调用。而且,不会被模仿。 也许我用错误的方式创建了间谍对象?无法执行