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

标签 java easymock

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

class ToTest{

    private MyManager myManager

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

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

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

如何忽略此 addListener 调用?

附注忽略 = 我不想对调用 myManager.addListener(..) 方法进行任何检查

最佳答案

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

我更喜欢的方式是明确表达期望,如下所示:

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

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

或者,您可以使用nice模拟:

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

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

关于java - 如何忽略 EasyMock 中对 void 方法的调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17973194/

相关文章:

java - Easymock:如何在不可见的情况下模拟调用 protected 方法

java - EasyMock 返回奇怪的值

java - 为什么在创建JPanel 类对象时,自动调用了paintComponent 方法?

java - 如何在 Java 中重写库方法?

java - 将整数数组组合为单个整数变量的方法?

java - 空对象模式与新对象

java - Postfix 电子邮件流解析

java - 延迟 EasyMock 验证

java - IllegalStateException - 没有最后一次调用可用的模拟

java - EasyMock测试代码中间抛出异常