我在测试类中添加了匿名内部类。
class ToTest{
private MyManager myManager
public void seyMyManager(MyManager myManager){
this.myManager = myManager;
}
....
public void doSomething(){
...
myManager.addListener(new Listener(){...});
.....
}
}
我的经理是从其他包中使用的方法,用于测试身体的方法。
如何忽略此addListener调用?
P.S。忽略=我不想对调用myManager.addListener(..)方法进行任何检查
答案 0 :(得分:1)
您可以将myManager创建为一个漂亮的模拟http://easymock.org/api/easymock/3.0/org/easymock/EasyMockSupport.html#createNiceMock(java.lang.String,java.lang.Class),或者如果您需要对测试的其他部分进行严格操作,请使用“anyTimes()”{设置期望值{ {3}}
答案 1 :(得分:1)
有几种方法可以做到这一点。
我首选的方法是明确这样的期望:
MyManager myManager = EasyMock.createMock(MyManager.class);
...
myManager.addListener(EasyMock.isA(Listener.class));
...
replay(myManager);
这里重要的一点是EasyMock.isA
,它将与传递的Listener
的期望相匹配。当其他地方出现问题时,我更喜欢这种方式。
或者你可以使用 nice mock:
MyManager myManager = EasyMock.createNiceMock(MyManager.class);
...
replay(myManager);
然而,任何遗漏的考试可能都不会导致考试失败,这就是为什么我不喜欢用这种方式创建模拟。