如果调用具有某个类的对象的方法,则Mockito doReturn

mir*_*zak 2 java junit unit-testing mockito spring-boot

如果我有一个对象MyObject,我想在调用该对象的某个方法时返回一些值.例如这样的事情:

doReturn(someValue).when(Mockito.any(MyObject.class)).getSomeValue();
Run Code Online (Sandbox Code Playgroud)

我试过这样,但它不起作用:

org.mockito.exceptions.misusing.NullInsteadOfMockException: 
Argument passed to when() is null!
Run Code Online (Sandbox Code Playgroud)

Luc*_*ens 6

您需要使用它Mockito.mock(MyObject.class)来创建对象的模拟.

目前,您正在使用Mockito#any,这是一个参数匹配器,用于在为任何给定参数调用stubbed方法时定义mock上的行为.

@Test
public void testMock() throws InterruptedException {
    MyObject myObjectMock = Mockito.mock(MyObject.class);
    doReturn(2).when(myObjectMock).getSomeValue();

    System.out.println(myObjectMock.getSomeValue()); // prints 2
}

private class MyObject {
    public int getSomeValue() {
        return 1;
    }
}
Run Code Online (Sandbox Code Playgroud)