EasyMock 在设置 属性 时拦截

EasyMock intercepts when setting a property

比如我创建了一个对象,想给它设置一个属性。问题是,属性 永远不会设置,因为 EasyMock 拦截了它。如何解决这个问题?

ctx = control.createMock(EGContext.class);
ctx.setRequestSource("origin");

我认为您不了解 mock 的工作原理。您永远不需要为模拟设置值。您应该告诉模拟 return 该值。唯一的例外是部分模拟,当 class 正在测试自身但模拟其实现的一部分时。

但是,一般来说,你真正想要的是

ctx = createMock(EGContext.class);
expect(ctx.getRequestSource()).andReturn("origin");
replay(ctx);

顺便说一句,你为什么要使用控件?您使用的是非常非常旧的 EasyMock 版本?