abstract trait MyApi {
def getResult()(implicit ec: ExecutionContext): Future[String]
}
以下内容不起作用:
val m = mock[MyApi]
(m.getResult _).expects() returning "..."
它失败并显示:
java.lang.ClassCastException: org.scalamock.MockFunction1 cannot be cast to org.scalamock.MockFunction0
注意:http ://scalamock.org/user-guide/advanced_topics/中给出的示例仅在该方法至少具有一个参数时才有用。因此,我们不能像在使用scalamock的scala中使用ClassTag的模拟方法中那样使用该解决方案
我猜你没有看正确的例子。请看示例4中的隐式参数:
class Codec()
trait Memcached {
def get(key: String)(implicit codec: Codec): Option[Int]
}
val memcachedMock = mock[Memcached]
implicit val codec = new Codec
(memcachedMock.get(_ : String)(_ : Codec)).expects("some_key", *).returning(Some(123))
当然,对于您来说,非隐式参数为null,因此您需要:
(m.getResult()(_: ExecutionContext)).expects(*) returning "..."
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句