检查传递给 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"));
}