java - 如何使用 Powermockito 以便跳过私有(private)无效方法

标签 java mockito junit4 powermock

<分区>

我需要为类似于以下类的类编写测试用例:

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() 方法。

关于java - 如何使用 Powermockito 以便跳过私有(private)无效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22111517/

相关文章:

Java 反转链接列表——调试器甚至无法工作

java - SpringBoot中mocking时出现NullPointerException

java - IntelliJ IDEA 看不到 Lombok 生成的代码

java - Junit 5 的 assertEquals 与 double 的精度

java - 在 Java 中使用 mod 3

java - Java 中将 dropwizard 初始未授权消息自定义为 json 格式

java - 使用 ASYNC 或其他线程优化布局/位图/数据库?

java - 测试 AWS SNS 实用程序类

java - 如何正确模拟一个简单的 CRUD 界面?

java - org.gradle.api.internal.tasks.testing.TestSuiteExecutionException : Could not complete execution for Gradle Test Executor 5