Mockitoでは、「VerifyzeroInteractions」は、テスト中にモックされたオブジェクトにメソッド呼び出しが行われないようにするために使用される特殊な検証方法です。この方法は、論理または不必要な依存関係の欠陥を示す可能性のある意図しない相互作用を防ぐことにより、単体テストの純度を維持するために重要です。
###他の検証方法との違い
1。目的と行動:
- `verifyzerointeractions`:このメソッドは、モックされたオブジェクトにメソッド呼び出しが行われていないことをチェックします。メソッド呼び出しが検出された場合、Mockitoは例外をスローし、テストに失敗します。テスト実行中に模擬オブジェクトが触れられないままであると主張するために使用されます[1] [4]。
- 「検証」:このメソッドは、特定のメソッド呼び出しが予想どおりに発生することを確認するために使用されます。これにより、メソッドが特定の引数で呼び出されたかどうかを確認でき、「Times() `、` atleast() `、および` atim() `などのさまざまな検証モードで使用できます[2] [7]。
2。検証モード:
- `verifyzeroInteractions`は確認モードをサポートしていません。それは単に相互作用がないことをチェックします。
- `times()`、 `atleast()`、 `atleastonce()`、および `atmist()`などの複数の検証モードをサポートします。
3。呼び出しの順序:
- 「VerifyzeroInteractions」は、相互作用がまったくないことをチェックするため、メソッド呼び出しの順序に関係しません。
- 「inorder」で `edor`を使用して、モックオブジェクトでのメソッドの呼び出しの順序を検証することができます。これは、メソッド呼び出しのシーケンスが重要である場合に役立ちます[2] [7]。
4。ユースケース:
- 「verifyzerointeractions」は、通常、モックオブジェクトがテストシナリオでまったく使用されないようにする場合に使用されます。これにより、テスト中のユニットを分離し、予期しない相互作用のために副作用が発生しないようにするのに役立ちます[1] [4]。
- 「検証」は、オブジェクト間で特定の相互作用が発生することを確認する必要があるシナリオで使用されます。テスト中のシステムの予想される動作をテストするためには不可欠です[2] [7]。
5。「VerifyNomoreInteractions」との関係:
- 「VerifyzeroInteractions」は、相互作用がまったく発生していないことをチェックします。
- `verifyNomoreInteractions`モックオブジェクト上のすべての相互作用が検証されていることをチェックします。特定のメソッド呼び出しに「検証」を使用した後、未検証の相互作用が残っていないことを保証します[3] [9]。
要約すると、「verifyzerointeractions」は、相互作用が発生しないようにすることに焦点を当てた専門的な方法であり、「検証」はより汎用性が高く、特定の相互作用とその頻度を確認できます。どちらの方法も、Mockitoを使用した単体テストでは不可欠であり、テストシナリオに応じてさまざまな目的を果たしています。
引用:[1] https://www.dhiwise.com/post/how-to-use-verifyzerointeractions-for-better-flutter-tests
[2] https://www.dhiwise.com/post/mastering-unit-testing-a-complete-guide-to-mockito-verify
[3] https://stackoverflow.com/questions/52396683/difference-between-verifynomore interactions-and-verifyzerointeractions-in-cockit
[4] https://www.lambdatest.com/automation-testing-advisor/selenium/methods/org.mockito.mockito.verifyzerointeractions
[5] https://stackoverflow.com/questions/64239160/using-mockito- when-mock-and-verify-vs-mockito-verify
[6] https://www.javacodegeeks.com/2015/11/mockito-verification.html
[7] https://www.toptal.com/java/a-guide-to-everyday-mockito
[8] https://www.baeldung.com/mockito-verify
[9] https://www.digitalocean.com/community/tutorials/mockito-verify