我有一个类,其中有一些示例中的方法。

public class TestClass {

    public boolean aMethod()
    {
        voidMethod();
        return true;
    }

    private void voidMethod()
    {
        ... does something ...
    }

    ... other methods ...
}

我想用powermock测试aMethod,除voidMethod之外,所有方法均应正常工作。
我已经创建了TestClass的部分模拟来使voidMethod不起作用。但是我不知道如何期望调用此方法。
testObject = createPartialMock(TestClass.class, "voidMethod");
expectPrivate(testObject, "voidMethod");

我在第二行出现错误:

EasyMock类型的方法Expect(T)不适用于参数(void)

如何解决此问题?

最佳答案

使用这样的简单调用:

testObject.voidMethod(); // don't use "expect" for voids
expectLastCall().times(3); // use this for expectations

而且,不要忘了您所期望的reply()和运行经过测试的代码后的verify()

09-16 06:01