我试图嘲笑卡桑德拉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