理解@Mock、@MockBean 和Mockito.mock() 之間的區別
在開發測試和模擬依賴項時,必須開發測試和模擬依賴項時,必須了解三種常用方法之間的差異:@MockBean、@Mock 和Mockito.mock()。
Mockito 與Spring Boot @MockBean
Mockito(經典/普通):
import org。 .Mock;<br>...<br>@Mock<br>MyService myservice;<br> pre><p></p><pre class="brush:php;toolbar:false">導入org.mockito.Mockito;<br>...<br>MyService myservice = Mockito.mock(MyService.class);<br>
Mockito 使用註解並提供直接模擬類別或介面的方法。
Spring Boot @MockBean:
import org.springframework。 boot.test.mock.mockito.MockBean;<br>...<br>@MockBean<br>MyService myservice;<br>
Spring Boot的@MockBean是專門使用的註解
差異:
何時使用:
Mockito.mock() 與@Mock @MockBean
@Mock(來自Mockito)和@MockBean(來自Spring Boot)都用於模擬,但有些微妙的地方差異:
功能上,它們都達到相同的結果,因此決定使用哪一個取決於特定的測試需求。
實際用法
沒有Spring 上下文的單元測試:
@Mock<br>:<br><pre class="brush:php;toolbar:false">@Mock<p> <strong></strong></p>
使用Spring 上下文和Bean 重寫進行單元測試
:
@MockBean<p>MyService myservice<strong></strong><ockbean>MyService myservice<p><br><br><br>; </p></ockbean></p>
@WebMvcTest(FooController.class)@MockBeanFoofService
以上是以下是文章的一些標題選項,強調問題格式: 短而有力: * @Mock、@MockBean 或 Mockito.mock():哪種模擬策略適合您? * Spring啟動測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!