我需要模拟一个私有的void方法,该方法不使用Mockito和Powermock接受任何参数.
该方法属于一个间谍实例.
我知道我需要这样做的事实表明代码很糟糕,但是我正在与一个旧项目合作,将单元测试从一个测试框架转换到另一个测试框架.
如果有人有任何建议,将不胜感激.
谢谢!
到目前为止,我已经尝试过了:
PowerMockito.doNothing().when(Whitebox.invokeMethod(spy,"method",null));
但是我得到这个错误:
No method found with name 'method' with parameter types: [ <none> ]
解决方法:
我还没有尝试过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..
}
..据我所记得..