Макет метода без аргументов, но с неявными параметрами
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/ полезен только в том случае, если у метода есть хотя бы один аргумент. Таким образом, мы не можем использовать решение, как в методах имитации, которые используют ClassTag в scala с использованием scalamock
person
douglaz
schedule
26.05.2015
source
источник
Ответы (1)
Вы не тот пример посмотрели, я думаю. Посмотрите на пример 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))
В вашем случае, конечно, неявные параметры равны нулю, поэтому вы хотите:
(m.getResult()(_: ExecutionContext)).expects(*) returning "..."
person
Ed Staub
schedule
26.05.2015