私有非静态void方法的PowerMockito不会被称为

时间:2017-10-18 10:05:48

标签: java unit-testing powermock powermockito

我想测试我的私有模拟方法,每次调用时都会调用我开始测试的方法。 private方法应该只更改参数列表的成员。以下是我的配置

MyClass myObject = PowerMockito.spy(new MyClass());
PowerMockito.doAnswer(new Answer() {
    public Object answer(InvocationOnMock invocation) {
        log.info("answer started");
        Object[] args = invocation.getArguments();
        if (args[0] != null) {
            //change the first argument
        }
        return null;
    }
}).when(myObject, method(MyClass.class, "myMethod"));

myMethod看起来像这样:

private void myMethod(List<AnotherObject> anotherList){...}

问题是这个配置不足以调用mock:

  

日志行没有出现。

我尝试只编写方法名称并添加如下参数:

 when(myObject, "myMethod", myAnotherList);    
 when(myObject, "myMethod", anyList());
 when(myObject, method(MyClass.class, "myMethod")).withArguments(myAnotherList);
 when(myObject, method(MyClass.class, "myMethod")).withArguments(anyList());

其中一些包含错误,其中一些未被完全调用。 你能帮我配置一下吗?

0 个答案:

没有答案