我試圖嘲笑卡桑德拉ScalaGettableData
對象使用scalamock。我需要模擬下面的方法:斯卡拉模擬函數與隱含泛型
def getMap[K : TypeConverter, V : TypeConverter](name: String) = get[Map[K, V]](name)
TypeConverter
是Trait
並具有隱含的實現,例如:
implicit object StringConverter extends TypeConverter[String]
在我的代碼我打電話
scalaGettableData.getMap[String, String]("myMap")
,我想這是隱含轉換爲
scalaGettableData.getMap[StringConverter, StringConverter]("myMap")
我的測試代碼如下:
val cassandraRow1 = mock[ScalaGettableData]
(cassandraRow1.getMap[String, String] _).expects("localizations_config").returning(Map("key1" -> "value1"))`
但我發現了編譯錯誤:
Error:(28, 26) _ must follow method; cannot follow (name: String)(implicit evidence$3: com.datastax.spark.connector.types.TypeConverter[String], implicit evidence$4: com.datastax.spark.connector.types.TypeConverter[String])Map[String,String] <and> (index: Int)(implicit evidence$3: com.datastax.spark.connector.types.TypeConverter[String], implicit evidence$4: com.datastax.spark.connector.types.TypeConverter[String])Map[String,String]
我怎麼嘲笑這種方法嗎?
看看http://stackoverflow.com/a/2983376/411944關於上下文邊界如何工作。 – Reactormonk