首頁 > Java > java教程 > 主體

以下是文章的一些標題選項,強調問題格式: 短而有力: * @Mock、@MockBean 或 Mockito.mock():哪種模擬策略適合您? * Spring啟動測試

DDD
發布: 2024-10-26 17:21:03
原創
241 人瀏覽過

Here are a few title options for your article, emphasizing the question format:

Short & Punchy:

* @Mock, @MockBean, or Mockito.mock(): Which Mocking Strategy is Right for You?
* Spring Boot Testing: When to Use @Mock, @MockBean, and Mockito.mock()?
* Mo

理解@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 允許您模擬單元測試的依賴項,而@MockBean 將模擬新增至Spring ApplicationContext。
  • @MockBean 根據現有的 bean 定義替換或添加模擬到上下文,而 Mockito 不與 Spring 互動。

何時使用:

  • 在與 Spring 容器隔離的情況下測試組件時使用 Mockito。
  • 當測試需要與 Spring 容器互動並模擬其中的特定 bean 時使用 @MockBean。

Mockito.mock() 與@Mock @MockBean

@Mock(來自Mockito)和@MockBean(來自Spring Boot)都用於模擬,但有些微妙的地方差異:

  • @Mock: 用於在單元測試中進行模擬的Mockito 註釋。
  • @MockBean: 使用的 Spring Boot 註解用於在 Spring ApplicationContext 中進行模擬。

功能上,它們都達到相同的結果,因此決定使用哪一個取決於特定的測試需求。

實際用法

沒有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>
登入後複製
向Spring WebMvc 測試添加Mock:
@WebMvcTest(FooController.class)@MockBeanFoofService 
登入後複製

以上是以下是文章的一些標題選項,強調問題格式: 短而有力: * @Mock、@MockBean 或 Mockito.mock():哪種模擬策略適合您? * Spring啟動測試的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!