質問形式を強調した、記事のタイトル オプションをいくつか示します。 短くてパンチのある: * @Mock、@MockBean、または Mockito.mock(): どのモッキング戦略が適切ですか? * スプリングブートテスト

DDD
リリース: 2024-10-26 17:21:03
オリジナル
330 人が閲覧しました

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() の違いを理解する

テストを開発して依存関係をモックする場合、次のことが不可欠です。一般的に使用される 3 つのアプローチ、@MockBean、@Mock、Mockito.mock() の違いを理解します。

Mockito と Spring Boot @MockBean

Mockito (クラシック/プレーン):

import org.mockito.Mock;<br>...<br>@Mock<br>MyService myservice;<br></ pre></p>
<p><pre class="brush:php;toolbar:false">import 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 は特に使用されるアノテーションですSpring Boot フレームワーク内。

違い:

  • 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>MyService myservice;<br>

Spring コンテキストと Bean オーバーライドによる単体テスト:

@MockBean<br>MyService myservice;<br>

Spring WebMvc テストへのモックの追加:

@WebMvcTest(FooController.class)<br>@MockBean<br>FooService fooServiceMock;<br>

以上が質問形式を強調した、記事のタイトル オプションをいくつか示します。 短くてパンチのある: * @Mock、@MockBean、または Mockito.mock(): どのモッキング戦略が適切ですか? * スプリングブートテストの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート