问题
I need to mock a private void method which takes no arguments using mockito and powermock.
The method belongs to a instance which is a spy.
I am aware the fact I need to do this suggests bad code but I am working with an old project converting the unit tests from one testing framework to another.
If anyone has any suggestions it would be much appreciated.
Thank You!
So far I have tried this:
PowerMockito.doNothing().when(Whitebox.invokeMethod(spy,"method",null));
But I get this error:
No method found with name 'method' with parameter types: [ <none> ]
回答1:
I haven't tried Whitebox (which comes with Powermock), but try something like:
@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..
}
.. as far as I can remember..
来源:https://stackoverflow.com/questions/25020277/mockito-powermockito-mock-private-void-method