无法模拟集合对象

时间:2014-03-05 03:29:15

标签: java mockito

如何模拟此特定代码段?

Collection<SeoUrlParam> params = getUrlState().getParameters();

我已经嘲笑了

urlState = mock(UrlState.class);

但我不知道如何模拟类型的params集合,这实际上是一个类

2 个答案:

答案 0 :(得分:2)

你可能不想模仿这个集合。您希望集合中存在一些实际数据,并让代码从那里运行它。

现在,通过布置调用的方式,可能会出现两个模拟对象 - 一个用于生成getUrlState()的模拟结果,另一个用于实际返回{{1 }}

我不确定你用于其中任何一个电话的类型,所以我会把它放在一边。但这个原则适用。

getParameters()

答案 1 :(得分:1)

不要模拟集合对象。集合本身通常没有足够的逻辑来使得逻辑输出更有价值。

将您的集合视为值对象,并根据需要创建真实集合。如果你想模仿集合中的各个对象,那很好,以及我完全推荐的练习。