EasyMock 如何捕获被测方法调用的 void 方法的参数?
EasyMock how to capture argument of a void method called by method under test?
根据文档,我的理解是 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 不起作用。
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();
调用void方法记录即可
Capture<String> capturedArgument = new Capture<>();
testObject.voidMethodName(capture(capturedArgument));
replay(testObject);
就是这样。这隐含地意味着您希望 void 方法被调用一次。添加 expectLastCall().once();
或 expectLastCall();
意味着完全相同的事情,并且没有用。
您不能调用 expect()
,因为 void 方法不会 return 任何东西。所以你不能将它作为参数传递给 expect()
.
您可能想知道为什么 expectLastCall()
存在。有两个原因:
- 对于特殊的 "returns" 比如
expectLastCall().andThrow(e)
- 记录特定数量的电话,例如
expectLastCall().atLeastOnce()
根据文档,我的理解是 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 不起作用。
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();
调用void方法记录即可
Capture<String> capturedArgument = new Capture<>();
testObject.voidMethodName(capture(capturedArgument));
replay(testObject);
就是这样。这隐含地意味着您希望 void 方法被调用一次。添加 expectLastCall().once();
或 expectLastCall();
意味着完全相同的事情,并且没有用。
您不能调用 expect()
,因为 void 方法不会 return 任何东西。所以你不能将它作为参数传递给 expect()
.
您可能想知道为什么 expectLastCall()
存在。有两个原因:
- 对于特殊的 "returns" 比如
expectLastCall().andThrow(e)
- 记录特定数量的电话,例如
expectLastCall().atLeastOnce()