MockitoJUnitRunner已被弃用
我正在尝试使用@InjectMocks
和@Mock
进行unit testing。
@RunWith(MockitoJUnitRunner.class) public class ProblemDefinitionTest { @InjectMocks ProblemDefinition problemDefinition; @Mock Matrix matrixMock; @Test public void sanityCheck() { Assert.assertNotNull(problemDefinition); Assert.assertNotNull(matrixMock); } }
当我不包含@RunWith
注释时,测试失败。 但
MockitoJUnitRunnertypes已被弃用
我正在使用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
注释,你的模拟对象可以是新的和记录多次,在所有的测试中,你可以给对象新的属性。 但是,如果您想要模拟对象的一次记录行为,请添加@BeforeCLass
还有一个@Rule
选项:
@Rule public MockitoRule rule = MockitoJUnit.rule();
或者在Kotlin:
@get:Rule var rule = MockitoJUnit.rule()
你可以试试这个,如果你不想使用@RunWith(MockitoJUnitRunner.class)
@BeforeClass public void setup() { MockitoAnnotations.initMocks(this); }