Java MockitoJUnitRunner已被弃用

Java MockitoJUnitRunner已被弃用,java,mockito,deprecated,Java,Mockito,Deprecated,我正在尝试使用@injectmock和@Mock进行单元测试 @RunWith(MockitoJUnitRunner.class) public class ProblemDefinitionTest { @InjectMocks ProblemDefinition problemDefinition; @Mock Matrix matrixMock; @Test public void sanityCheck() {

我正在尝试使用
@injectmock
@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类型

我使用的是Mockito2.6.9。我该怎么做呢?

现在确实不受欢迎,你应该用它来代替。正如您所看到的,只有包名已更改,类的简单名称仍然是
MockitoJUnitRunner

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

移动到,将使用删除此类 莫基托3号


如果您不想使用@RunWith(MockitoJUnitRunner.class),可以试试这个

您可以尝试以下方法:

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

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

还有一个
@Rule
选项:

@Rule 
public MockitoRule rule = MockitoJUnit.rule();
或在科特林:

@get:Rule
var rule = MockitoJUnit.rule()

您可以尝试导入以下内容:

import org.mockito.runners.MockitoJUnitRunner;

另外,如果您使用的是Eclipse,只需按Ctrl+Shift+O,它就会自动导入它。

我在将依赖项更新到最新版本时成功地解决了这一问题:

def mockito_version = '2.28.2'

// For local unit tests on your development machine
testImplementation "org.mockito:mockito-core:$mockito_version"

// For instrumentation tests on Android devices and emulators
androidTestImplementation "org.mockito:mockito-android:$mockito_version"
然后我通过replace命令(Mac:cmd+Shift+R窗口:Ctrl+Shift+R)更改了导入 从


“BeforeClass”方法应该是静态的,它没有访问“this”的权限。谢谢,为我节省了几个小时。
def mockito_version = '2.28.2'

// For local unit tests on your development machine
testImplementation "org.mockito:mockito-core:$mockito_version"

// For instrumentation tests on Android devices and emulators
androidTestImplementation "org.mockito:mockito-android:$mockito_version"
import org.mockito.runners.MockitoJUnitRunner; 
import org.mockito.junit.MockitoJUnitRunner;