Mockito的JUnit测试用例抛出NullPointerException

时间:2017-02-13 13:15:16

标签: java junit nullpointerexception mockito

我正在使用Mockito编写一个JUnit测试用例,我收到了NullPointerException。

商业代码

UserId

测试代码

public XRImage getImage(String imgId, List tagList) {
    _paramsMap.printContent();
    return _paramsMap.getImage(imgId, tagList);
}

2 个答案:

答案 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);