如何使用 Powermockito 以便跳过私有 void 方法[重复]
Posted
技术标签:
【中文标题】如何使用 Powermockito 以便跳过私有 void 方法[重复]【英文标题】:How to use Powermockito so that private void methods are skipped [duplicate] 【发布时间】:2014-04-02 10:05:45 【问题描述】:我需要为一个类似于下面的类写一个测试用例:
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 方法,问题是 - 我无法使用 PowerMock 跳过对 callWebService() 的方法调用。因此,为了更清楚地解释,我需要一个调用 loadBean 的测试用例,但在遇到 callWebService 方法继续执行流程时什么也不做。
我在同一个网站上读到它,我们可以使用 PowerMockito 来完成它,但无法让它工作。
请帮忙。
【问题讨论】:
【参考方案1】:这对我有用:
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.K 检查 PowerMockito.method以上是关于如何使用 Powermockito 以便跳过私有 void 方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用powermockito,模拟一个类中的私有静态属性,而且这个属性是了工
PowerMockito 在 Spring Boot 中模拟私有方法