如何使用PowerMockito跳过私有void方法

3

我需要为一个类编写测试用例,该类与以下类似:

public class TestClass {

public String loadBean(int i) {
    String s = null;
    if (i <= 0) {
        s = "less";
        // call some webservice that we don't need to test
        callWebService(s);
    } else {
        s = "more";
    }
    return s;
}

private void callWebService(String s) {
    //Some complex code here

}

我需要测试loadBean方法,但问题是-我无法跳过调用callWebService()方法,使用PowerMock。因此,更清楚地解释一下,我需要一个测试用例调用loadBean,但在遇到callWebService方法时不做任何操作,继续执行流程。

我在同一网站上阅读了关于使用PowerMockito实现的方法,但无法将其工作。

请帮忙。

1个回答

2
这对我有效:

这个方法对我很有帮助:

import static org.powermock.api.mockito.PowerMockito.when;
import static org.powermock.api.mockito.PowerMockito.doNothing;

//Skipping rest of the code
TestClass testSpy = PowerMockito.spy(new TestClass());
doNothing().when(testSpy, method(TestClass.class, "callIt")).withNoArguments();

代码上面跳过了我的类中的 private void callIt() 方法。

"method(TestClass.class, "callIt")" 中的方法是什么? - Prasobh.Kollattu
我在同一个地方遇到了未完成存根异常错误。 - Alan Pallath
@Prasobh.K 检查 PowerMockito.method。 - Amarjeet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接