无法使用在Java中链接接口的方法模拟类

无法使用在Java中链接接口的方法模拟类,java,junit,mockito,Java,Junit,Mockito,我试图用Mockito模拟一个类,该类有一个链接接口的方法。该类已成功模拟,但当它调用接口时会抛出空指针。代码如下所示: mock = Mockito.mock(MyProcess.class); process = mock.getProcess() .getService() //Interface throwing null exception .startProcessInstanceByKey("String argument"

我试图用Mockito模拟一个类,该类有一个链接接口的方法。该类已成功模拟,但当它调用接口时会抛出空指针。代码如下所示:

 mock = Mockito.mock(MyProcess.class);
    process = mock.getProcess()
            .getService() //Interface throwing null exception
            .startProcessInstanceByKey("String argument");
我得到了这个解决方案,并尝试遵循下面页面上的示例,但它不起作用:


上面的示例不起作用

您也需要模拟重新调谐
服务
。类的所有外部依赖项都需要模拟,如果不这样做,就会得到
null

processMock = Mockito.mock(MyProcess.class);
serviceMock= Mockito.mock(Service.class);

Mockito.doReturn(serviceMock).when(processMock).getService();
Mockito.doReturn(<VALUE>).when(serviceMock).startProcessInstanceByKey("String argument");
processMock=Mockito.mock(MyProcess.class);
serviceMock=Mockito.mock(Service.class);
doReturn(serviceMock).when(processMock).getService();
Mockito.doReturn().when(serviceMock).startProcessInstanceByKey(“字符串参数”);

您需要用外部值模拟每个步骤-这就是它的工作原理。

您已经展示了文档中的示例。展示您是如何遵循该示例的,以及该示例不起作用的地方。
processMock = Mockito.mock(MyProcess.class);
serviceMock= Mockito.mock(Service.class);

Mockito.doReturn(serviceMock).when(processMock).getService();
Mockito.doReturn(<VALUE>).when(serviceMock).startProcessInstanceByKey("String argument");