ホームページ  >  記事  >  Java  >  Mockito でモックされたメソッドに引数を返すにはどうすればよいですか?

Mockito でモックされたメソッドに引数を返すにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-23 22:13:02681ブラウズ

How to Return an Argument to a Mocked Method in Mockito?

Mockito を使用してモックされたメソッドに渡された引数を返す方法

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。