验证Mockito中的List列表参数

问题描述 投票:1回答:1

假设我有一个以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>>类型的参数创建一个类型安全的匹配器呢?

android unit-testing testing mockito
1个回答
1
投票

您可以使用Matchers.any()执行类型安全匹配器,并使用以下类型对其进行限定:

Matchers.<List<List<MyObject>>>any()
© www.soinside.com 2019 - 2024. All rights reserved.