首頁  >  文章  >  Java  >  如何使用 Mockito 測試抽象類別:逐步指南

如何使用 Mockito 測試抽象類別:逐步指南

Susan Sarandon
Susan Sarandon原創
2024-10-30 18:07:03514瀏覽

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 執行實際指示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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn