オブジェクト指向プログラミングでは、Mockito などのモック フレームワークを使用してモック オブジェクトを作成します。テスト目的で実際のオブジェクトの動作をシミュレートします。テストにおける一般的なシナリオの 1 つは、モック化されたメソッドに渡されたものと同じ引数を返す必要があることです。
Java 8 以降と組み合わせた Mockito 1.9.5 以降のバージョンの場合、ラムダ式を活用してこの動作を実現できます。
when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</p> <p>ここで、 i は のインスタンスを表します。 InvocationOnMock、getArguments()[0] は、モックされたメソッドに渡された最初の引数を取得します。</p> <p><h3>Mockito およびカスタム アンサー (古いバージョン)</h3></p> <p>古いバージョンについてMockito の各バージョンでは、カスタム Mockito Answer 実装を使用できます。</p> <pre class="brush:php;toolbar:false"><code class="java">MyInterface mock = mock(MyInterface.class); when(mock.myFunction(anyString())).thenAnswer(new Answer<String>() { @Override public String answer(InvocationOnMock invocation) throws Throwable { Object[] args = invocation.getArguments(); return (String) args[0]; } });</code>
このカスタム Answer は、渡された引数を取得して返し、モック化されたメソッドが受信した入力をエコーできるようにします。
以上がJavaで受け取った引数を返すメソッドをモックする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。