@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.mock() と @Mock @MockBean
@Mock (Mockito から) と @MockBean (Spring Boot から) の両方がモックに使用されますが、微妙な違いがあります。違い:
機能的には、どちらも同じ結果が得られるため、どちらを使用するかの決定は、特定のテスト要件によって異なります。
実際の使用法
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 サイトの他の関連記事を参照してください。