在mockito的doAnswer()中使用时,ArrayList为null

时间:2016-03-03 13:16:36

标签: java arraylist null mockito

我正在使用mockito并创建一个这样的模拟:

...
doAnswer(Helper.create()) //
.when(this.mock).someMethod(any(SomeClass.class));
...

Helper创建一个Answer,它回答一个包含空列表的实例:

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;
    }
};

运行该测试时,会回答ReturnClass的实例,但它的列表为空(在尝试迭代时会导致NullPointerException)。

向该列表添加项目可以解决问题。

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

0 个答案:

没有答案