首頁  >  文章  >  Java  >  Mockito 可以模擬抽象類別嗎?

Mockito 可以模擬抽象類別嗎?

Patricia Arquette
Patricia Arquette原創
2024-11-02 13:30:03981瀏覽

Can Mockito Mock Abstract Classes?

使用 Mockito 模擬抽象類別

測試抽象類別時,手動製作模擬可能會很不方便。 Mockito 提供了更有效率的解決方案。

查詢:

是否可以使用 Mockito 來模擬抽象類,而不是手動建立模擬?如果是,怎麼做?

答案:

Mockito 提供了模擬抽象類別的選項,而無需創建特定的子類別。使用 Mockito.mock(My.class, Answers.CALLS_REAL_METHODS),您可以建立一個部分模擬,其中抽象方法由模擬本身處理。

例如:

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

注意使用 CALLS_REAL_METHODS 時,除非在測試中明確覆蓋,否則所有實際方法都會執行。這種方法比使用間諜提供了更大的靈活性,間諜需要實例化抽象類別的子類別。

以上是Mockito 可以模擬抽象類別嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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