次のように記述できます。もちろん、依存性注入とテスト方法は、現在の実装やテスト シナリオによって変わる可能性があります。
@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
マッチャーを使用する代わりに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);
}
}
乾杯、