0

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

class ToTest{

    private MyManager myManager

    public void seyMyManager(MyManager myManager){
       this.myManager = myManager;
    } 

    ....
    public void doSomething(){
    ...
        myManager.addListener(new Listener(){...});
    .....  
    }
}

我的经理是来自其他包的类,用于测试主体的方法。

如何忽略此 addListener 调用?

PS Ignore = 我不想对调用 myManager.addListener(..) 方法进行任何检查

4

2 回答 2

1

您可以将 myManager 创建为一个不错的模拟http://easymock.org/api/easymock/3.0/org/easymock/EasyMockSupport.html#createNiceMock(java.lang.String , java.lang.Class) 或者如果您需要它要严格测试的其他部分,请使用“anyTimes()” http://easymock.org/api/easymock/3.0/org/easymock/IExpectationSetters.html#anyTimes()设置期望

于 2013-07-31T14:45:33.387 回答
1

有几种方法可以做到这一点。

我首选的方式是明确说明这样的期望:

MyManager myManager = EasyMock.createMock(MyManager.class);
...
myManager.addListener(EasyMock.isA(Listener.class));
...
replay(myManager);

这里重要的一点是EasyMock.isA将期望与Listener通过的相匹配。当测试失败的其他地方出现问题时,我更喜欢这种方式。

或者,您可以使用一个不错的模拟:

MyManager myManager = EasyMock.createNiceMock(MyManager.class);
...
replay(myManager);

但是,任何缺失的期望都可能不会导致测试失败,这就是我不喜欢以这种方式创建模拟的原因。

于 2013-07-31T14:57:59.950 回答