ホームページ >Java >&#&チュートリアル >Mockito で抽象クラスをテストする方法: ステップバイステップ ガイド

Mockito で抽象クラスをテストする方法: ステップバイステップ ガイド

Susan Sarandon
Susan Sarandonオリジナル
2024-10-30 18:07:03612ブラウズ

How to Test Abstract Classes with Mockito: A Step-by-Step Guide

Mockito を使用した抽象クラスのテスト

抽象クラスは、具体的な実装が欠如しているため、単体テストに課題をもたらします。手動でのモック作成はオプションですが、時間がかかり、複雑になる可能性があります。

Mockito は、手動でモックを作成せずに抽象クラスをテストするための洗練されたソリューションを提供します。その仕組みは次のとおりです:

  1. 抽象クラスをモックします:

    <code class="java">My mock = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);</code>

    Answers.CALLS_REAL_METHODS を使用することで、Mockito に実際のメソッドを実行するように指示します。オーバーライドされていないメソッドの実装により、抽象メソッドの動作をテストできるようになります。

  2. 必要に応じてスタブ抽象メソッド:

    抽象メソッドの場合テスト中に制御するメソッドを使用するには、次の構文を使用します。

    <code class="java">Mockito.when(mock.methodIDontCareAbout()).thenReturn(null);</code>

    これは、特定の抽象メソッドをスタブ化し、必要な動作を提供します。

例:

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

<code class="java">public abstract class My {
    public Result methodUnderTest() { ... }
    protected abstract void methodIDontCareAbout();
}

@Test
public void shouldFailOnNullIdentifiers() {
    My my = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);
    Assert.assertSomething(my.methodUnderTest());
}</code>

この例では、抽象メソッド methodIDontCareAbout() がテスト対象のメソッドで使用されていません。 thenReturn(null) でモックすることで、テスト中に事実上無視できます。

このアプローチは、抽象クラスをテストするための簡潔で便利な方法を提供し、手作りのモックの必要性を排除し、非クラスの効率的なテストを容易にします。具象クラス

以上がMockito で抽象クラスをテストする方法: ステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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