首頁 > Java > java教程 > Mockito 可以模擬抽象類別嗎?

Mockito 可以模擬抽象類別嗎?

Patricia Arquette
發布: 2024-11-02 13:30:03
原創
1066 人瀏覽過

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板