我有声明方法的接口
public interface EventAdder{
void addEvent(Event e);
}
现在我有了一个使用此接口的类。
public class Container{
//some code here
private EventAdder ea;
public void checkPainterState(){
//some code which I want to test inside checkPainterState
ea.addEvent(new Event(val1, val2));
}
}
我正在使用外部测试类创建Container object
。
我想测试方法checkPainterState()
而不在测试中ea.addEvent()
方法中调用checkPainterState()
。我如何在测试中模拟/间谍/替换此ea object
或ea.AddEvent
方法以防止使用?
答案 0 :(得分:0)
由于您使用mockito,因此很容易声明:
final EventAdder adder = mock(EventAdder.class);
// make it the adder for your container, run the method, then
verify(adder).addEvent(any(Event.class)); // or other argument matcher
使用Mockito进行模拟时,void方法的默认行为正是什么都不做。