面对Power Mockito私有空方法测试案例的问题

时间:2017-06-27 11:55:15

标签: java junit4 powermockito

我正在使用powermock。 我正面临着以下情况的问题。

更新

我的问题不同。 在另一个链接中给出的示例,私有方法返回一些值。 在我的情况下,这两个方法都返回Void。

class ClassForWhichTestCasesIsPrepared {

    private void myPrivateMethod(String param1, MyBean param2) {
        //Some Code Here to save data
    }

    public void myPublicMethod() {
        //Some Code Here to find the require paramters to pass to below method

        myPrivateMethod(String param1, MyBean param2);
    }

}

myPublicMethod编写测试用例的问题,以便在同一个类中模拟私有方法。

我想模拟myPrivateMethod方法,因为它不应该被调用,但myPublicMethod应涵盖测试用例。 这两种方法都是无效的。

我无法更改此设计,我只需完成并覆盖所需的测试用例。

1 个答案:

答案 0 :(得分:0)

您可以使用PowerMock提供的间谍方法。

e.g。

ClassForWhichTestCasesIsPrepared spy = PowerMockito.spy(new ClassForWhichTestCasesIsPrepared());

  when(spy, method(ClassForWhichTestCasesIsPrepared .class, "myPrivateMethod", 
  String.class, MyBean.class)).withArguments(anyString(), anyObject())
  .thenReturn(true);// this return can be made to do nothing as well if you want

spy.myPublicMethod();