ホームページ  >  記事  >  Java  >  Mockito は抽象クラスをモックできますか?

Mockito は抽象クラスをモックできますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 13:30:03981ブラウズ

Can Mockito Mock Abstract Classes?

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

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