0

尝试做一件简单的事情时我感到很沮丧——我想在模拟对象上调用一个方法,而不是检查它的返回值。我只想检查它是否使用正确的参数调用。

例子:

MyInterface mockObject = createMock(MyInterface.class);
SomeObject param = new SomeObject();

/* the write object is not void and returns an instance of FooOjbect.
 * I want to ignore everything to do with FooObject - I do not care what
 * it is because I do not store its value. How do I do this? */
mockObject.write(param);

replay(mockObject);

someOtherObjectThatCallsAboveMockObject.process(mockObject);

verify(mockObject);

那么有没有 EasyMock 专家呢?我不关心我调用的底层方法的设计而不是存储返回值,因为实际实现来自第三方网络库(Apache Mina),我无法控制 API。

编辑: 一段时间后得出结论

我抛弃了 EasyMock,因为它并不容易,然后选择了Mockito

4

1 回答 1

3

代替

mockObject.write(param)

EasyMock.expect( mockObject.write(param) ).andReturn( /* return value here */ );

您仍然需要返回一个值才能使代码正确,但您可以在测试中进一步忽略该值。

于 2009-02-25T22:55:45.170 回答