Mockito 区分模棱两可的 any() 集合与列表

Mockito Distinguish Ambiguous any() Collection vs List

我正在尝试模拟一个采用以下参数的重载方法:

Collection<Foo>

List<Pair<Foo, Bar>>

我的问题是我想 Mockito.when 获取基于列表的方法。但是如果我这样做 Mockito.anyList 那仍然是模棱两可的,因为那仍然是一个集合。

我试过 Mockito.any(List.class) 但这也有歧义,当我尝试 Mockito.any(List<Pair>.class) 时我无法从参数化类型中获取它。

如何区分它们? Mockito.listOf 看起来很有希望,但到目前为止还没有奏效。

您可以将参数匹配器保存在具有预期类型的​​变量中,从而解决歧义。

List<Pair<Foo, Bar>> listMatcher = ArgumentMatchers.anyList();
Mockito.when(myVar.doSth(listMatcher)).thenReturn(someValue);

您可以尝试这样的操作:ArgumentMatchers.<List<Pair<Foo, Bar>>>any()