【发布时间】:2011-01-17 14:09:50
【问题描述】:
如何模拟返回类型为 void 的方法?
我实现了一个观察者模式,但我不能用 Mockito 模拟它,因为我不知道怎么做。
而且我试图在网上找到一个例子但没有成功。
我的班级是这样的:
public class World {
List<Listener> listeners;
void addListener(Listener item) {
listeners.add(item);
}
void doAction(Action goal,Object obj) {
setState("i received");
goal.doAction(obj);
setState("i finished");
}
private string state;
//setter getter state
}
public class WorldTest implements Listener {
@Test public void word{
World w= mock(World.class);
w.addListener(this);
...
...
}
}
interface Listener {
void doAction();
}
系统不是用mock触发的。
我想显示上述系统状态。并据此做出断言。
【问题讨论】:
-
注意模拟上的 void 方法默认什么都不做!
-
@Line,这就是我要找的。说出来之后就很明显了。但它确实突出了一个模拟原则:您只需要模拟模拟类的方法以获得它们的效果,例如返回值或异常。谢谢!
标签: java unit-testing mocking mockito void