檢查傳遞給 mock 的引數
讓我們假設我們有這個類,我們想測試 doSmth
方法。在這種情況下,我們想看看引數 val
是否傳遞給 foo
。物件 foo
被嘲笑。
public class Bar {
private final Foo foo;
public Bar(final Foo foo) {
this.foo = foo;
}
public void doSmth() {
foo.bla("val");
}
}
我們可以用 ArgumentCaptor
實現這個目標:
@Mock
private Foo fooMock;
@InjectMocks
private Bar underTest;
@Captor
private ArgumentCaptor<String> stringCaptor;
@Test
public void should_test_smth() {
underTest.doSmth();
Mockito.verify(fooMock).bla(stringCaptor.capture());
assertThat(stringCaptor.getValue(), is("val"));
}