如何使用Powermockito以便跳过私有void方法[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Powermockito以便跳过私有void方法[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
我需要为类似于以下类的类编写测试用例:
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来做它但无法让它工作。
请帮忙。
答案
这对我有用:
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()方法。
以上是关于如何使用Powermockito以便跳过私有void方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用powermockito,模拟一个类中的私有静态属性,而且这个属性是了工
PowerMockito 在 Spring Boot 中模拟私有方法