1.はじめに
この短いチュートリアルでは、Mockito 2の遅延検証について見ていきます。
-
Mockitoを使用すると、テストが失敗する代わりに、テストの最後にすべての結果が収集および報告されるのを確認できます。
2. Mavenの依存関係
Mockito 2 依存関係を追加することから始めましょう。 :
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>2.21.0</version>
</dependency>
3.遅延検証
-
Mockitoのデフォルトの動作は最初の失敗で止まることです。
熱心に - アプローチは fail-fast としても知られています。
以前の失敗に関係なく、すべての検証を実行して報告する必要がある場合があります。
VerificationCollector は、テストメソッド内のすべての検証を収集するJUnitルールです。
テストが失敗した場合、それらはテストの最後に実行され、報告されます。
public class LazyVerificationTest {
@Rule
public VerificationCollector verificationCollector = MockitoJUnit.collector();
//...
}
簡単なテストを追加しましょう。
@Test
public void testLazyVerification() throws Exception {
List mockList = mock(ArrayList.class);
verify(mockList).add("one");
verify(mockList).clear();
}
このテストが実行されると、両方の検証の失敗が報告されます。
org.mockito.exceptions.base.MockitoAssertionError: There were multiple verification failures:
1. Wanted but not invoked:
arrayList.add("one");
-> at com.baeldung.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:21)
Actually, there were zero interactions with this mock.
2. Wanted but not invoked:
arrayList.clear();
-> at com.baeldung.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:22)
Actually, there were zero interactions with this mock.
VerificationCollector ルールがないと、最初の検証のみが報告されます。
Wanted but not invoked:
arrayList.add("one");
-> at com.baeldung.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:19)
Actually, there were zero interactions with this mock.
4.まとめ
Mockito 2で遅延検証を使用する方法について簡単に説明しました。
また、いつものように、コードサンプルはhttps://github.com/eugenp/tutorials/tree/master/testing-modules/mockito-2[over on GitHub]にあります。