Mockito の利用: DoReturn() と When()
Mockito の領域では、明らかな類似点を持つ 2 つのメソッドが出現します。 ) と when()。どちらもオブジェクトのモック機能を促進し、「なぜこのような類似したメソッドが 2 つ必要なのでしょうか?
答えは、スパイされたオブジェクト (@Spy のアノテーションが付けられたもの) とモックされたオブジェクト (@Mock のアノテーションが付けられたもの) で使用されたときの動作にあります」 )。モックされたオブジェクトとは異なり、スパイされたオブジェクトは、拡張したクラスの実際のメソッド実装を保持します。
When() thenReturn() は、指定された戻り値を置き換える前に元のメソッドを呼び出します。したがって、メソッドによってスローされた例外はテスト内で処理する必要があります。例:
@Spy private MyClass myClass; // Continues executing the actual method, potentially throwing an exception when(myClass.anotherMethodInClass()).thenReturn("test");
DoReturn() when() は、メソッド呼び出しを完全にインターセプトします。これにより、元のメソッドの実行が防止され、例外のリスクが排除されます。
// Bypasses the actual method call, returning the specified value doReturn("test").when(myClass).anotherMethodInClass();
スパイ対象オブジェクトを操作する場合、この区別を理解することが重要です。スパイされたメソッドがエラーを引き起こす可能性がある状況では、 doReturn() が when() に代わる安全な代替手段を提供し、スムーズなテスト エクスペリエンスを保証します。
以上がMockito モッキング: When() と doReturn() – いつどちらを使用すべきですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。