MockitoJUnitRunner 已弃用

2022-08-31 12:59:56

我正在尝试使用 和 进行单元测试。@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。我应该怎么做?


答案 1

org.mockito.runners.MockitoJUnitRunner 现在确实已被弃用,你应该使用 org.mockito.junit.MockitoJUnitRunner 来代替。正如你所看到的,只有包名称发生了变化,该类的简单名称仍然是MockitoJUnitRunner

摘自 javadoc 的 :org.mockito.runners.MockitoJUnitRunner

移动到MockitoJUnitRunner,这个类将与Mockito 3一起删除


答案 2

你可以试试这个:

@Before
public void setup() {
    MockitoAnnotations.initMocks(this);
}

由于您添加了注释,因此您的模拟对象可以是新的并多次记录,并且在所有测试中,您都可以为对象提供新的属性。但是,如果您想要模拟对象的一次性记录行为,请添加@Before@BeforeCLass


推荐