Mockito と JUnit 5 でインジェクションを使用するにはどうすればよいですか?
@RunWith(MockitoJUnitRunner.class)
JUnit4 では、アノテーションを使用するだけです。JUnit5には@RunWith
注釈はありませんか?
Mockito と JUnit 5 でインジェクションを使用するにはどうすればよいですか?
@RunWith(MockitoJUnitRunner.class)
JUnit4 では、アノテーションを使用するだけです。JUnit5には@RunWith
注釈はありませんか?
Mockito を使用するにはさまざまな方法があります。1 つずつ説明します。
Mockito::mock
JUnitのバージョン(またはテストフレームワーク)に関係なく、手動でモックを作成できます。
@Mockアノテーションを使用してモックMockitoAnnotations::initMocks
を作成するための対応する呼び出しは、JUnit のバージョンに関係なく機能します (またはテスト フレームワークですが、テスト コードがモジュールで終了するかどうかに応じて、Java 9 がここで干渉する可能性があります)。
JUnit 5 には強力な拡張モデルがあり、Mockito は最近、グループ/アーティファクト ID org.mockito : mockito-junit-jupiter の下で公開しました。
テストクラスに追加@ExtendWith(MockitoExtension.class)
し、モック化されたフィールドに@Mock
. MockitoExtension
の JavaDocから:
@ExtendWith(MockitoExtension.class)
public class ExampleTest {
@Mock
private List list;
@Test
public void shouldDoSomething() {
list.add(100);
}
}
MockitoExtension のドキュメントでは、モックをインスタンス化する他の方法について説明しています。たとえば、コンストラクター インジェクション (テスト クラスの最終フィールドを優先する場合) などです。
JUnit 4 のルールとランナーは JUnit 5 では機能しないため、MockitoRule
とMockito ランナーは使用できません。