使用最新版本的EasyMock,我有一个方法需要存根。该方法接受一个object参数并返回void。
我正在测试的方法正在调用stubbed方法。没有惊喜。我的困难在于,作为模拟方法的参数提供的对象是由我正在测试的方法创建的。
我知道我可以使用createNiceMock()
来解决这个问题,但有没有办法明确地删除这个方法?
示例代码:
public interface IMockMe {
void doSomething(InnerObj obj);
}
public class TestMe {
IMockMe mockMe;
public void testThisMethod() {
InnerObj obj = new InnerObj();
mockMe.doSomething(obj);
}
}
class Tester {
@Test
public void testThatDarnedMethod() {
IMockMe mocked = EasyMock.create(IMockMe.class);
mocked.doSomething( /* what goes here? */);
EasyMock.expectLastCall();
TestMe testMe = new TestMe(mocked);
testMe.testThisMethod();
}
}
答案 0 :(得分:4)
查看EasyMock documentation的“使用参数匹配器的灵活期望”部分。文档中的示例:
String[] documents = new String[] { "Document 1", "Document 2" };
expect(mock.voteForRemovals(aryEq(documents))).andReturn(42);
aryEq(documents)
是一个调用,它创建一个匹配任何具有正确内容的数组的匹配器,而不是通过标识进行匹配。
在您的情况下,您可能需要anyObject()
匹配器。