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