Mockito を使用した抽象クラスのモック
抽象クラスをテストする場合、手動でモックを作成するのは不便な場合があります。 Mockito は、より効率的なソリューションを提供します。
クエリ:
手動でモックを作成するのではなく、Mockito を使用して抽象クラスをモックすることは可能ですか?もしそうなら、どのようにして?
答え:
Mockito は、具体的なサブクラスを作成せずに抽象クラスをモックするオプションを提供します。 Mockito.mock(My.class, Answers.CALLS_REAL_METHODS) を使用すると、抽象メソッドがモック自体によって処理される部分モックを作成できます。
例:
<code class="java">public abstract class My { public Result methodUnderTest() { ... } protected abstract void methodIDontCareAbout(); } public class MyTest { @Test public void shouldFailOnNullIdentifiers() { My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS); Assert.assertSomething(my.methodUnderTest()); } }</code>
注CALLS_REAL_METHODS を使用すると、テストで明示的にオーバーライドされない限り、すべての実際のメソッドが実行されます。このアプローチでは、抽象クラスのサブクラスをインスタンス化する必要があるスパイを使用するよりも柔軟性が高くなります。
以上がMockito は抽象クラスをモックできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。