Mockito doReturn 如果调用具有特定类的对象的方法



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

doReturn(someValue).when(Mockito.any(MyObject.class)).getSomeValue();

我已经尝试过了,但它不起作用:

org.mockito.exceptions.misusing.NullInsteadOfMockException: 
Argument passed to when() is null!

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

目前,您正在使用 Mockito#any,它是一个参数匹配器,用于在为任何给定参数调用存根方法时定义模拟上的行为。

@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;
    }
}

或者,您可以使用 Mockito 注释:

@RunWith(MockitoJUnitRunner.class)
public class YourTestClass {
  @Mock 
  MyObject myObjectMock

避免在设置或测试方法中手动模拟该对象。

相关内容

  • 没有找到相关文章

最新更新