从文档中,我的理解是,ExpectLastCall()将用于void方法,而不是Expect(),因此在执行此操作时我会在Eclipse中抱怨。
Capture<String> capturedArgument = new Capture<>();
expect(testObject.voidMethodName(capture(capturedArgument)));
此How to expect void method call with any argument using EasyMock不起作用。
答案 0 :(得分:1)
您只需要调用void方法来记录它。
Capture<String> capturedArgument = new Capture<>();
testObject.voidMethodName(capture(capturedArgument));
replay(testObject);
就是这样。这隐含意味着您希望void方法被调用一次。添加expectLastCall().once();
或expectLastCall();
的意思是完全一样的,而且没有用。
您不能调用expect()
,因为void方法不会返回任何内容。因此,您无法将其作为参数传递给expect()
。
您可能想知道为什么expectLastCall()
存在。有两个原因:
expectLastCall().andThrow(e)
expectLastCall().atLeastOnce()
答案 1 :(得分:0)
TestClass testObj = new TestClass();
Capture<String> capturedArgument = new Capture<>(); //change type as needed
testObj.voidMethodName(capture(capturedArgument));
expectLastCall().atLeastOnce();//adjust number of times as needed
//may need additional replay if you have an additional mocks control object
replay(testObj);
testObj.methodUnderTest();