ホームページ >Java >&#&チュートリアル >Mockito で Void メソッドを効果的にモックするにはどうすればよいですか?
Mockito を使用した Void メソッドのモック
Observer パターンでは、オブザーバーは通常、戻り値の型が void のメソッドを定義します。 Mockito を使用してそのようなメソッドをモックしようとすると、課題が発生する可能性があります。
課題: 戻り値のないメソッドのモックは、自動的にはトリガーされません。その結果、状態変更またはメソッド呼び出しに関連するアサーションが単体テストで失敗する可能性があります。
解決策:
doThrow() を使用します。 doAnswer()、 Mockito の doNothing() または doReturn() メソッドを使用して、void メソッドの動作を操作します。
たとえば、メソッドの呼び出し時に例外をトリガーするには、次のようにします。
Mockito.doThrow(new Exception()).when(instance).methodName();
後続のアクションと組み合わせるには:
Mockito.doThrow(new Exception()).doNothing().when(instance).methodName();
提供されている例では、setState メソッドのモックは doAnswer メソッドを使用して実現できます。
World mockWorld = mock(World.class); doAnswer(new Answer<Void>() { public Void answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); System.out.println("called with arguments: " + Arrays.toString(args)); return null; } }).when(mockWorld).setState(anyString());
この手法を使用すると、void メソッドをモックし、期待値を設定し、アサーションを実行して単体テストでの動作を検証できます。
以上がMockito で Void メソッドを効果的にモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。