ホームページ > Java > &#&チュートリアル > Mockito で Void メソッドをモックする方法: doThrow、doAnswer、doNothing、および doReturn のガイド?

Mockito で Void メソッドをモックする方法: doThrow、doAnswer、doNothing、および doReturn のガイド?

Susan Sarandon
リリース: 2024-12-17 03:06:26
オリジナル
430 人が閲覧しました

How to Mock Void Methods in Mockito:  A Guide to doThrow, doAnswer, doNothing, and doReturn?

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

オブザーバー パターンを扱う場合、戻り値の型が void のメソッドをモックすると課題が発生する可能性があります。そのようなケースの 1 つは、 void を返す addListener のようなメソッドを使用してクラスをモックする際に困難に遭遇することです。

戻り値のないメソッドをモックするために、Mockito はメソッドのセットを提供しています: doThrow()、doAnswer()、 doNothing() および doReturn()。これらのメソッドを使用すると、モックされたメソッドの動作を指定できます。

たとえば、addListener メソッドが呼び出されたときに例外をスローするように指定するには、以下を使用できます。

Mockito.doThrow(new Exception()).when(instance).addListener(any(Listener.class));
ログイン後にコピー

または、次のようにします。複数の動作を連鎖させることができます。たとえば、次のコードは addListener への最初の呼び出しで例外をスローし、その後の呼び出しでは何も行いません。

Mockito.doThrow(new Exception()).doNothing().when(instance).addListener(any(Listener.class));
ログイン後にコピー

提供された World クラスでは、次のように doAnswer メソッドを使用して setState メソッドをモックできます。以下に示す:

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());
ログイン後にコピー

以上がMockito で Void メソッドをモックする方法: doThrow、doAnswer、doNothing、および doReturn のガイド?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート