我正在使用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
应涵盖测试用例。
这两种方法都是无效的。
我无法更改此设计,我只需完成并覆盖所需的测试用例。
答案 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();