ホームページ  >  記事  >  Java  >  Mockito はどのようにして抽象クラスのテストを簡素化できるのでしょうか?

Mockito はどのようにして抽象クラスのテストを簡素化できるのでしょうか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-30 18:48:30562ブラウズ

How Can Mockito Simplify Testing Abstract Classes?

Mockito を使用した抽象クラスのモック

抽象クラスのテストは、特に手動でのモック作成を考慮している場合に課題が生じる可能性があります。ただし、Mockito を活用すると、別のアプローチが提供されます。

Mockito.mock() with Answers.CALLS_REAL_METHODS

手動でモック クラスを構築する代わりに、Mockito のモック() メソッドを使用できます。 Answers.CALLS_REAL_METHODS 引数とともに使用されます。このオプションは、抽象クラスから継承するモック クラスを生成し、実際のメソッドを明示的に実装せずにテストできるようにします。

例:

抽象クラス My を考えてみましょう。テスト下のメソッドmethodUnderTest()と抽象メソッドmethodIDontCareAbout()。次のコード スニペットは、このアプローチを使用してメソッドUnderTest() をテストする方法を示しています。

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

この例では、Mockito.mock(My.class, Answers.CALLS_REAL_METHODS) は、実際のメソッドを許可する My のモック インスタンスを作成します。 MethodUnderTest() の実装を実行して、そのロジックのテストを有効にします。同時に、抽象メソッドのmethodIDontCareAbout()はテストによって呼び出されないため、実装する必要がありません。

利点

このアプローチにより、テストが合理化されます。カスタム サブクラスを作成したり、抽象メソッドを実装したりする必要がなくなるため、抽象クラスの作成が容易になります。また、抽象クラスとテスト ケースの間の望ましい分離が維持され、よりクリーンで簡潔なテストが可能になります。

以上がMockito はどのようにして抽象クラスのテストを簡素化できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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