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]