首頁  >  文章  >  Java  >  Mockito 如何簡化抽象類別的測試?

Mockito 如何簡化抽象類別的測試?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-30 18:48:30554瀏覽

How Can Mockito Simplify Testing Abstract Classes?

使用 Mockito 模擬抽象類別

測試抽象類別可能會帶來挑戰,特別是在考慮手動模擬創建的情況下。然而,利用 Mockito 提供了另一種方法。

Mockito.mock() 和 Answers.CALLS_REAL_METHODS

Mockito 的 mock() 方法可以取代手動建構模擬類別與 Answers.CALLS_REAL_METHODS 參數一起使用。此選項產生一個繼承自抽象類別的模擬類,並允許測試真實方法而無需明確實現它們。

範例:

考慮一個抽象類別 My with被測方法methodUnderTest()和抽象方法methodIDontCareAbout()。以下程式碼片段示範如何使用此方法測試methodUnderTest():

<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中文網其他相關文章!

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