Can*_*ell 156 java junit unit-testing mockito
建议使用ArgumentCaptor进行验证,但不使用stubbing.
但我不明白ArgumentCaptor如何用于存根.有人可以解释上面的陈述,并说明ArgumentCaptor如何用于存根或提供一个链接,说明如何做到这一点?
Ror*_*ick 265
假设要测试以下方法:
public boolean doSomething(SomeClass arg);
Run Code Online (Sandbox Code Playgroud)
文档的Mockito说,你应该不以这种方式使用的捕手:
when(someObject.doSomething(argumentCaptor.capture())).thenReturn(true);
assertThat(argumentCaptor.getValue(), equalTo(expected));
Run Code Online (Sandbox Code Playgroud)
因为您可以在存根期间使用匹配器:
when(someObject.doSomething(eq(expected))).thenReturn(true);
Run Code Online (Sandbox Code Playgroud)
但验证是另一回事.如果您的测试需要确保使用特定参数调用此方法,请使用ArgumentCaptor
以及设计它的情况:
ArgumentCaptor<SomeClass> argumentCaptor = ArgumentCaptor.forClass(SomeClass.class);
verify(someObject).doSomething(argumentCaptor.capture());
assertThat(argumentCaptor.getValue(), equalTo(expected));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
140536 次 |
最近记录: |