Mockito Verifyの使用
概要
Mockito Verifyメソッドは、特定の動作が発生したかどうかを確認するために使用されます.テストメソッドコードの最後にMockito検証メソッドを使用して、指定したメソッドが呼び出されていることを確認できます.ここでは、主に使い方と機能について説明します. Mockito verify Mockito verify()簡単な例 Mockito検証回数 verifyNoMoreInteractions() verifyZeroInteractions() Mockito検証メソッド呼び出しのみ Mockito検証呼び出し順序 小結 Mockito verify メソッドを使用して、メソッド呼び出しの順序を検証できます.メソッド呼び出しをスキップできますが、検証するメソッドは同じ順序でなければなりません.シミュレーション検証方法の例を見てみましょう.
シミュレーションリストオブジェクトで
メソッドが呼び出されたことを確認したいが、パラメータに関心がない場合は、
Mockito検証回数
Mockito verify() method is overloaded, the second one is
verifyNoMoreInteractions()
このメソッドは、すべての検証メソッドの後に使用して、すべてのインタラクションが検証されることを確認できます.シミュレーションオブジェクトに検証されていないインタラクションがある場合は、テストに失敗します.
2回目の呼び出し
Mockitoの大きな機能は異常メッセージであり,テストに失敗した点を明確に指摘しているので,簡単に修復できる.
verifyZeroInteractions()
Mockito検証メソッド呼び出しのみ
1つのメソッドのみが呼び出されたことを検証する場合は、
Mockito検証呼び出し順序
まとめ
Mockito verify()メソッドは、シミュレーションオブジェクトメソッドが呼び出されることを保証するために使用することができる.メソッド呼び出しが誤って削除された場合、verifyメソッドによってエラーが発生します.
Mockito Verifyメソッドは、特定の動作が発生したかどうかを確認するために使用されます.テストメソッドコードの最後にMockito検証メソッドを使用して、指定したメソッドが呼び出されていることを確認できます.ここでは、主に使い方と機能について説明します.
Mockito verify()
メソッドは、メソッド呼び出しの数をテストするために使用されてもよい.シミュレーション法の正確な回数を試験することができ,少なくとも1回,少なくとも1回試験することができる.すべてのverify()メソッド呼び出し後.verifyNoMoreInteractions()
を使用して、すべてのコンテンツが検証されていることを確認できます.まだ検証方法がある場合は、失敗し、正しいメッセージが表示されます.verifyZeroInteractions()
の挙動はverifyNoMoreInteractions()
の方法と同じである.@Test
void test() {
List<String> mockList = mock(List.class);
mockList.add("Pankaj");
mockList.size();
verify(mockList).add("Pankaj");
}
シミュレーションリストオブジェクトで
inOrder()
が1回しか呼び出されない場合、上記verifyメソッドは通過します.add(“ Pankaj”)
パラメータ呼び出しをverifyメソッドで使用するのと同じです.verify(mockList, times(1)).size();
メソッドが呼び出されたことを確認したいが、パラメータに関心がない場合は、
times(1)
をArgumentMatchers
メソッドとともに使用することができる.verify(mockList).add(anyString());
verify(mockList).add(any(String.class));
verify(mockList).add(ArgumentMatchers.any(String.class));
verify
クラスは、org.mockito.Mockito
クラスを使用してスムーズなコードを記述するのに役立つMockitoフレームワークのほとんどの有用な方法に静的方法を提供していることに注意してください.Mockito検証回数
Mockito verify() method is overloaded, the second one is
import static
. We can use it to verify for the invocation count. verify(mockList, times(1)).size(); //same as normal verify method
verify(mockList, atLeastOnce()).size(); // must be called at least once
verify(mockList, atMost(2)).size(); // must be called at most 2 times
verify(mockList, atLeast(1)).size(); // must be called at least once
verify(mockList, never()).clear(); // must never be called
verifyNoMoreInteractions()
このメソッドは、すべての検証メソッドの後に使用して、すべてのインタラクションが検証されることを確認できます.シミュレーションオブジェクトに検証されていないインタラクションがある場合は、テストに失敗します.
// all interactions are verified, so below will pass
verifyNoMoreInteractions(mockList);
mockList.isEmpty();
// isEmpty() is not verified, so below will fail
verifyNoMoreInteractions(mockList);
2回目の呼び出し
verify(T mock, VerificationMode mode)
は失敗し、次のエラーメッセージが表示されます.org.mockito.exceptions.verification.NoInteractionsWanted:
No interactions wanted here:
-> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:36)
But found this interaction on mock 'list':
-> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:34)
***
For your reference, here is the list of all invocations ([?] - means unverified).
1. -> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:18)
2. -> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:19)
3. [?]-> at com.journaldev.mockito.verify.MockitoVerifyExamples.test(MockitoVerifyExamples.java:34)
Mockitoの大きな機能は異常メッセージであり,テストに失敗した点を明確に指摘しているので,簡単に修復できる.
verifyZeroInteractions()
verifyNoMoreInteractions()
法の挙動はverifyZeroInteractions()
法と同じである.Map mockMap = mock(Map.class);
Set mockSet = mock(Set.class);
verify(mockList).isEmpty();
verifyZeroInteractions(mockList, mockMap, mockSet);
Mockito検証メソッド呼び出しのみ
1つのメソッドのみが呼び出されたことを検証する場合は、
verifyNoMoreInteractions()
をverifyメソッドとともに使用できます.Map mockMap = mock(Map.class);
mockMap.isEmpty();
verify(mockMap, only()).isEmpty();
Mockito検証呼び出し順序
only()
を使用して呼び出し順序を検証できます.検証には任意の方法をスキップできますが、検証する方法は同じ順序で呼び出さなければなりません.InOrder inOrder = inOrder(mockList, mockMap);
inOrder.verify(mockList).add("Pankaj");
inOrder.verify(mockList, calls(1)).size();
inOrder.verify(mockList).isEmpty();
inOrder.verify(mockMap).isEmpty();
まとめ
Mockito verify()メソッドは、シミュレーションオブジェクトメソッドが呼び出されることを保証するために使用することができる.メソッド呼び出しが誤って削除された場合、verifyメソッドによってエラーが発生します.