如何忽略EasyMock中对void方法的调用

时间:2013-07-31 14:29:31

标签: java easymock

我在测试类中添加了匿名内部类。

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(..)方法进行任何检查

2 个答案:

答案 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);

然而,任何遗漏的考试可能都不会导致考试失败,这就是为什么我不喜欢用这种方式创建模拟。