@InjectMocks
と@Mock
を使用して単体テストを作成しようとしています。
@RunWith(MockitoJUnitRunner.class)
public class ProblemDefinitionTest {
@InjectMocks
ProblemDefinition problemDefinition;
@Mock
Matrix matrixMock;
@Test
public void sanityCheck() {
Assert.assertNotNull(problemDefinition);
Assert.assertNotNull(matrixMock);
}
}
@RunWith
注釈を含めない場合、テストは失敗します。しかし
タイプMockitoJUnitRunnerは非推奨です
Mockito 2.6.9を使用しています。これについてどうすればいいですか?
org.mockito.runners.MockitoJUnitRunner
は非推奨になりました。代わりに org.mockito.junit.MockitoJUnitRunner
を使用することになります。パッケージ名のみが変更されていることがわかるように、クラスの単純な名前はまだMockitoJUnitRunner
です。
org.mockito.runners.MockitoJUnitRunner
のjavadocからの抜粋:
MockitoJUnitRunner
に移動し、このクラスはMockito 3で削除されます
これを試すことができます:
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Before
注釈を追加するため、モックオブジェクトは何度も新しく記録され、すべてのテストでオブジェクトに新しいプロパティを与えることができます。ただし、モックオブジェクトの1回限りの記録動作が必要な場合は、@BeforeCLass
を追加してください
@Rule
オプションもあります:
@Rule
public MockitoRule rule = MockitoJUnit.rule();
またはコトリンで:
@get:Rule
var rule = MockitoJUnit.rule()