Mockito 2による遅延検証

Mockito 2による遅延検証

1. 前書き

この短いチュートリアルでは、Mockito2での遅延検証について説明します。

Mockitoを使用すると、失敗する代わりに、テストの最後に収集および報告されたすべての結果を確認できます。

2. Mavenの依存関係

Mockito 2の依存関係を追加することから始めましょう:


    org.mockito
    mockito-core
    2.21.0

3. 遅延検証

The default behavior of Mockito is to stop at the first failure、つまり 熱心に–このアプローチは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();
}

このテストが実行されると、failures of both verifications will be reported

org.mockito.exceptions.base.MockitoAssertionError: There were multiple verification failures:
1. Wanted but not invoked:
arrayList.add("one");
-> at com.example.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:21)
Actually, there were zero interactions with this mock.

2. Wanted but not invoked:
arrayList.clear();
-> at com.example.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.example.mockito.java8.LazyVerificationTest.testLazyVerification(LazyVerificationTest.java:19)
Actually, there were zero interactions with this mock.

4. 結論

Mockito 2で遅延検証を使用する方法を簡単に確認しました。

また、いつものように、コードサンプルはover on GitHubで見つけることができます。