在调用给定的模拟 void 方法时执行自定义操作 (EasyMock)

问题描述

我希望能够在调用给定的 void 方法时执行自定义操作。

例如:-

private IMocksControl control;
private Map<String,Double> dataMap = new HashMap<>();
private Abc abc;

public void setup(){
  control = EasyMock.createControl();
  abc = control.createMock(Abc.class);
}

假设在类 Abc 中有一个我想使用的 void 方法。但是当该方法调用时,我想在 dataMap 哈希图中放置一个条目。

任何建议如何做到这一点?

解决方法

我不太记得 EasyMock 1 的代码(现在已经过时了 10 多年),但应该有一个 control.andAnswer(),您可以在其中执行以下操作:

abc.method();
control.andAnswer(new IAnswer() {
    dataMap.put(...);
});