Mockito を使用した抽象クラスのテスト
抽象クラスは、具体的な実装が欠如しているため、単体テストに課題をもたらします。手動でのモック作成はオプションですが、時間がかかり、複雑になる可能性があります。
Mockito は、手動でモックを作成せずに抽象クラスをテストするための洗練されたソリューションを提供します。その仕組みは次のとおりです:
抽象クラスをモックします:
<code class="java">My mock = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);</code>
Answers.CALLS_REAL_METHODS を使用することで、Mockito に実際のメソッドを実行するように指示します。オーバーライドされていないメソッドの実装により、抽象メソッドの動作をテストできるようになります。
必要に応じてスタブ抽象メソッド:
抽象メソッドの場合テスト中に制御するメソッドを使用するには、次の構文を使用します。
<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 サイトの他の関連記事を参照してください。