我试图找出是否可以将any
参数匹配器之类的东西用于具有类型参数的方法:
when(store.getItems[Product](any[FilterParams]))
.thenReturn(allProducts)
使用上述代码段运行代码时,出现此错误:
Invalid use of argument matchers!
2 matchers expected, 1 recorded
我猜这是因为我向该方法传递了一个确切的类型Product
参数getItems
。
当我传入一个实际FilterParams
对象时,这确实有效:
when(store.getItems[Product](FilterParams()))
.thenReturn(allProducts)
是否有任何参数匹配器可用于类型参数?还是违反直觉,因为每当我们使用类型参数调用函数时,我们都必须传递类型参数?
编辑:
Product
这不是 Scala 的内置Product
特性。
方法的函数签名getItems
:
def getItems[T <: ItemType : universe.TypeTag](filterParams: FilterParams): List[T]