您可以编写以下内容。当然,依赖注入和测试方法可能会根据您当前的实现和/或您的测试场景而改变。
@RunWith(MockitoJUnitRunner.class)
public class ClassToTestTest {
@Mock AnotherClass anotherClass;
@InjectMocks ClassToTest classToTest;
@Test public void ensure_that_value___Z___is_passed_to___AnotherClass() {
classToTest.methodToTest(1, 2);
verify(anotherClass).receiveSomething(eq(3));
}
}
考虑到 Mockito 1.9.5-rc1 编写。
此外,eq
您可以使用 an 来代替使用匹配器ArgumentCaptor
,这将捕获值或值引用(在对象的情况下)。您将能够对捕获的值执行其他断言。例如使用 Truth 或 FEST-Assert。
这可能看起来像:
@RunWith(MockitoJUnitRunner.class)
public class ClassToTestTest {
...
@Captor ArgumentCaptor<List<Z>> listCaptor
@Test public void ensure_that_list_with_value___Z___is_passed_to___AnotherClass() {
// given
// when
...
// then
verify(anotherClass).receiveList(listCaptor.capture());
assertThat(listCaptor.getValue()).contains(Z);
}
}
干杯,