ホームページ >Java >&#&チュートリアル >Mockito で Void メソッドをモックするにはどうすればよいですか?

Mockito で Void メソッドをモックするにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-08 03:15:11975ブラウズ

How to Mock Void Methods in Mockito?

Mockito を使用した Void メソッドのモック

Mockito フレームワークを使用して、void 戻り値の型を持つメソッドをモックするにはどうすればよいでしょうか?この特定の疑問は、オブジェクト メソッドが値を返さず、代わりにアクションを実行するシナリオで頻繁に発生します。

課題の克服

Mockito API は、さまざまな機能を提供します。 doThrow()、doAnswer()、doNothing() などのメソッドを含む、この状況を処理するためのオプションdoReturn().

  • doThrow(Exception): モック メソッドが呼び出されたときに、事前定義された例外をスローします。
  • doAnswer(Answer): モック メソッドが呼び出されたときのカスタム動作を定義できます。 Answer インターフェイスは InvocationOnMock オブジェクトを受け入れ、適切な値 (この場合は Void) を返します。

実装例

次のシナリオ例を考えてみましょう。

public class World {

    private String state;

    // Setter for state
    public void setState(String s) {
        this.state = s;
    }
} 

public class WorldTest {

    @Test public void testingWorld() {
        World mockWorld = mock(World.class);

        // Mock the setState method using doAnswer
        doAnswer(new Answer<Void>() {
            @Override
            public Void answer(InvocationOnMock invocation) {
                Object[] args = invocation.getArguments();
                System.out.println("Called with arguments: " + Arrays.toString(args));
                return null;
            }
        }).when(mockWorld).setState(anyString());

        // Call the mock method and observe the output
        mockWorld.setState("Mocked");
    }
}

doAnswer メソッドを使用すると、カスタム動作を指定できます。モック setState メソッド。上の例では、メソッドに渡された引数を出力し、その呼び出しを可視化します。

以上がMockito で Void メソッドをモックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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