我正在使用Mockito编写一个JUnit测试用例,我收到了NullPointerException。
商业代码
UserId
测试代码
public XRImage getImage(String imgId, List tagList) {
_paramsMap.printContent();
return _paramsMap.getImage(imgId, tagList);
}
答案 0 :(得分:0)
易:
List requiredTags = null;
...
XRImage getImage1=acquisitionParamsManager.getImage(imgId,requiredTags);
您正在为该列表传递 null !请改为使用空列表。
如果那是一个java.util.List;你实际上正在创建一个原始泛型类型;而你宁可做List<Whatever>
之类的事情!
答案 1 :(得分:0)
您是否期望使用imageParamsMap
模拟对象而不是_paramsMap
实例变量?
如果是这样,在调用方法之前,您需要以某种方式在imageParamsMap
上设置acquisitionParamsManager
。例如,假设有一个可用的setter:
acquisitionParamsManager.setParamsMap(imageParamsMap);
XRImage getImage1 = acquisitionParamsManager.getImage(imgId, requiredTags);
如果没有可用的setter,Mock注入将是另一种选择。除此之外,如果没有引发异常的额外代码和/或行号,则很难进行调试。
不相关,但在测试用例中调用addImage()
实际上并没有完成任何事情。如果要验证是否调用了此方法,请尝试在断言后添加此语句:
verify(imageParamsMap).addImage(imgId);