我正在编写一个单元测试,它访问App类中LinkedHashMap的一个公共变量。 我想模仿这个返回空列表,请问我怎么做
App有这个变量
public LinkedHashMap<String, ArrayList<QCCheck>> mapOfQCC =
new LinkedHashMap<>();
单元测试要求mapOfQCC返回空列表
我试过了,但没有用
every(app.mapOfQCC).thenReturn(LinkedHashMap<String, ArrayList<QCCheck>>())
错误
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
预先感谢R
错误消息是不言而喻的。 您正在尝试存根字段访问:
every(app.mapOfQCC).thenReturn(LinkedHashMap<String, ArrayList<QCCheck>>())
这在Mockito身上是不可能的。 您只能存根方法调用。
您有两个选项:
LinkedHashMap<String, ArrayList<QCCheck>> keepOldIfNeed = app.mapOfQCC; // keep the list in object if you need
app.mapOfQCC = new LinkedHashMap<>(); // this is empty