Mockito / Powermockito模拟私有空方法

时间:2014-07-29 16:25:40

标签: java unit-testing mockito powermock

我需要使用mockito和powermock来模拟一个不带参数的私有void方法。

该方法属于间谍的实例。

我知道我需要这样做的事实表明代码不好但我正在使用一个旧项目将单元测试从一个测试框架转换到另一个测试框架。

如果有人有任何建议,我们将不胜感激。

谢谢!

到目前为止,我已经尝试过这个:

PowerMockito.doNothing().when(Whitebox.invokeMethod(spy,"method",null));

但是我收到了这个错误:

No method found with name 'method' with parameter types: [ <none> ] 

1 个答案:

答案 0 :(得分:12)

我没有尝试过Whitebox(配备Powermock),但尝试类似:

@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class)
public class MyClassTest {
    private MyClass myClass;

    @Before
    public void setup() {
        myClass = PowerMockito.spy(new MyClass());
        PowerMockito.doNothing().when(myClass, "myPrivateMethod");
    }
    //Tests..
}

..据我记得..