Java 在mockito'中初始化时,ArrayList为null;s doAnswer()
我正在使用mockito创建一个类似这样的mock: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
...
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:试试这个,谢谢!