验证Mockito中的List列表参数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证Mockito中的List列表参数相关的知识,希望对你有一定的参考价值。
假设我有一个以List<List<MyObject>>
为参数的方法:
public void myFunction(List<List<MyObject>> listOfList) {}
我知道我可以使用anyList()
作为匹配器,例如
verify(myClass).myFunction(anyList());
但是,我得到一个未经检查的分配警告。我不能使用这些匹配器中的任何一个,因为它们会产生编译错误:
// Fails - Expects just a single-layered List<MyObject>
verify(myClass).myFunction(anyListOf(MyObject.class));
// Fails - "no instance(s) of type variable(s) T exist so that List<T> conforms to Class<T>"
verify(myClass).myFunction(anyListOf(anyListOf(MyObject.class)));
那么我如何为List<List<T>>
类型的参数创建一个类型安全的匹配器呢?
答案
您可以使用Matchers.any()执行类型安全匹配器,并使用以下类型对其进行限定:
Matchers.<List<List<MyObject>>>any()
以上是关于验证Mockito中的List列表参数的主要内容,如果未能解决你的问题,请参考以下文章
Mockito验证了特定的lambda已经作为mock方法中的参数传递