Java 在mockito'中初始化时,ArrayList为null;s doAnswer()

Java 在mockito'中初始化时,ArrayList为null;s doAnswer(),java,arraylist,null,mockito,Java,Arraylist,Null,Mockito,我正在使用mockito创建一个类似这样的mock: ... doAnswer(Helper.create()) // .when(this.mock).someMethod(any(SomeClass.class)); ... 助手将创建一个答案,回答包含空列表的实例: return new Answer<ReturnClass>() { @Override public ReturnClass answer(InvocationOnMock invocation

我正在使用mockito创建一个类似这样的mock:

...
doAnswer(Helper.create()) //
.when(this.mock).someMethod(any(SomeClass.class));
...
助手将创建一个答案,回答包含空列表的实例:

return new Answer<ReturnClass>() {
    @Override
    public ReturnClass answer(InvocationOnMock invocation) throws Throwable {
        ReturnClass ret = new ReturnClass();
        ret.setList(new ArrayList()); // this is null at runtime
        // Solved by: ret.setList(new ArrayList(Arrays.asList("item")));
        return ret;
    }
};
返回新答案(){
@凌驾
public ReturnClass answer(InvocationMock调用)抛出可丢弃的{
ReturnClass ret=新的ReturnClass();
ret.setList(new ArrayList());//这在运行时为null
//解决者:ret.setList(新的ArrayList(Arrays.asList(“项”)));
返回ret;
}
};
在运行该测试时,返回类的实例得到响应,但它的列表为null(在尝试对其进行迭代时导致NullPointerException)

向该列表中添加一项可以解决此问题


我能做些什么使空列表成为可能吗?

你能做一个例子来说明你的情况吗?你需要在之后修改列表吗?如果没有,可能返回
Collections.emptyList()
会有帮助…@Sasha Salauyou:试试这个,谢谢!