在另一个方法中模拟/替换接口方法

时间:2016-02-22 00:10:06

标签: java unit-testing testing junit mockito

我有声明方法的接口

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 objectea.AddEvent方法以防止使用?

1 个答案:

答案 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方法的默认行为正是什么都不做。