Mockito は、テスト目的でモック オブジェクトを作成できる Java モック フレームワークです。モック メソッドは、依存関係に関係なくコードをテストするのに役立ちます。このシナリオでは、メソッド呼び出し中に渡された値を返すメソッドをモックしたいと考えています。
解決策:
Mockito バージョン 1.9.5 以降Java 8 では、ラムダ式を利用して目的の機能を実現できます。
<code class="java">when(myMock.myFunction(anyString())).thenAnswer(i -> i.getArguments()[0]);</code>
このラムダ式では、i は InvocationOnMock のインスタンスを表し、i.getArguments()[0] はモックされたメソッドに渡される最初の引数を取得します。
古いバージョンの代替ソリューション:
Mockito の古いバージョンの場合、同じ結果を達成するために Answer を実装できます。以下に例を示します。
<code class="java">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 実装では、引数の配列が InvocationOnMock インスタンスから取得され、最初の引数 (文字列) が返されます。
これらのメソッドを使用すると、次のことができます。渡された引数に基づいて値を返すように Mockito でモックされたメソッドを構成し、より柔軟で現実的なテスト シナリオを可能にします。
以上がMockito でモックされたメソッドに引数を返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。