使用 Mockito 測試抽象類別
抽象類別由於缺乏具體的實現而給單元測試帶來了挑戰。雖然手動建立模擬是一種選擇,但它可能既耗時又複雜。
Mockito 提供了一種優雅的解決方案,無需手動建立模擬即可測試抽象類別。它的工作原理如下:
模擬抽象類別:
<code class="java">My mock = Mockito.mock(My.class, Answers.CALLS_REAL_METHODS);</code>
透過使用Answers.CALLS_REAL_METHODS,您指示Mockito 執行實際指示Mockito 的實際指示非重寫方法,可讓您測試抽象方法的行為。
根據需要存根抽象方法:
對於抽象您想要在測試期間控制的方法,請使用以下語法:
<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中文網其他相關文章!