背景
ソフトウェア テスト, モッキングは、実際の依存関係の動作をシミュレートする偽のオブジェクトを作成するために使用される手法です。 Mockito は Java で人気のモック フレームワークであり、オブジェクトをモックする複数の方法を提供します。このガイドでは、さまざまなアプローチとその適切な使用法を比較します。
Mockito.mock() と @Mock (Mockito アノテーション)
Mockito.mock() と @Mock は次のとおりです。標準の Mockito ライブラリから。どちらもクラスまたはインターフェイスのモック オブジェクトを作成します。 @Mock は便利なアノテーションベースのソリューションを提供しますが、Mockito.mock() はより明示的です。機能的には同等です。ただし、コードが簡素化されるため、@Mock を使用することをお勧めします。
@MockBean (Spring Boot)
@MockBean は、Spring Boot テスト ライブラリによって提供されるラッパーです。これは、Mockito モッキング機能と Spring の Bean 管理を組み合わせたものです。 Mockito.mock() や @Mock とは異なり、@MockBean は Spring ApplicationContext に注入されるモック Bean を作成します。これには 2 つの重要な特性があります。
使用ガイドライン
プレーン Mockito を使用する場合: プレーン Mockito を使用せずにコンポーネントをテストする場合は、Mockito.mock() または @Mock を使用します。 Spring Boot の依存関係に依存している場合、またはテストされたコンポーネントの分離が重要な場合。
@MockBean を使用する場合: Web テスト スライス (@WebMvcTest など)、または Spring Boot Bean の変更が必要なその他のテスト シナリオで @MockBean を使用します。
@MockBean の例
FooController が FooService に依存する Spring Boot Web テストを考えてみましょう。 @MockBean を使用すると、テスト コンテキストで実際の FooService Bean をモックに置き換えることができます。
<code class="java">@WebMvcTest(FooController.class) public class FooControllerTest { @MockBean private FooService fooServiceMock; // ... // }</code>
この例では、fooServiceMock インスタンスが FooController に挿入され、その動作と制御をモックできるようになります。コントローラーとのやり取り
以上がJava でのモッキングに @Mock、@MockBean、または Mockito.mock() をいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。