Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法使用Mockito模拟accountStatus_Java_Junit - Fatal编程技术网

Java 无法使用Mockito模拟accountStatus

Java 无法使用Mockito模拟accountStatus,java,junit,Java,Junit,从下面这段代码中,我无法模拟checkAccountStatus,它的值为null。要解决此问题,我需要做哪些更改 等级 测试班 您的模拟未正确配置 当你打电话的时候 service.searchAccessID(header, request); 这是一个潜在的呼吁 checkAccountStatus(request); (这是正确的模拟并返回accountResponse),但此模拟不会实例化其结果对象,因此您的第一个模拟将永远不会被触发 将第一个mock更新为更宽松的版本可能会解决

从下面这段代码中,我无法模拟checkAccountStatus,它的值为
null
。要解决此问题,我需要做哪些更改

等级 测试班
您的模拟未正确配置

当你打电话的时候

 service.searchAccessID(header, request);
这是一个潜在的呼吁

checkAccountStatus(request);
(这是正确的模拟并返回accountResponse),但此模拟不会实例化其结果对象,因此您的第一个模拟将永远不会被触发

将第一个mock更新为更宽松的版本可能会解决您的问题

Mockito.when(helper.getAccountStatus(any(AccessIDSearchResponse.class))).thenReturn(accountResponse);
老实说,您的代码几乎不可测试,因为您在任何地方实例化了太多的对象。将来当你重构某些东西时,在这里进行模拟将是一件痛苦的事情。如果我是你,我会使用TDD方法重写这段代码,并倾向于使用更多可测试的模式

 service.searchAccessID(header, request);
checkAccountStatus(request);
Mockito.when(helper.getAccountStatus(any(AccessIDSearchResponse.class))).thenReturn(accountResponse);