Как исправить ошибку фиктивного scala, где неявный аргумент не указан? - PullRequest
1 голос
/ 20 мая 2019

У меня есть класс, который я пытаюсь смоделировать с помощью scala mock, но получаю ошибку компиляции.Как я могу исправить эту ошибку или правильно указать неявное?

В нем говорится, что неявный аргумент не указан.

Я пытался следовать руководству на фиктивном сайте scala.Я также пробовал разные способы указания неявного значения.

Я создаю макет здесь

val mockUserSessionApiGatewayHandler = mock[UserSessionApiGatewayHandler]

Вот подпись метода

def userExists[F[+_] : Monad](request: UserNameAndPasswordEvent)(implicit awsProxy: DatabaseProxy[F, UserTable])

Я указываюмакет здесь

(mockUserSessionApiGatewayHandler.userExists[IO] (_: UserNameAndPasswordEvent) ( _: DatabaseProxy[IO, UserTable]) )
            .expects(testUserNameAndPasswordEvent, *)
            .returning(EitherT.rightT[IO, String]("User Does Not Exist"))

Вот ошибка

not enough arguments for method userExists: (implicit evidence$3: cats.Monad[cats.effect.IO], implicit awsProxy: lambdas.database.DatabaseProxy[cats.effect.IO,lambdas.database.UserTable])cats.data.EitherT[cats.effect.IO,String,String].
[error] Unspecified value parameter awsProxy.
[error]           (mockUserSessionApiGatewayHandler.userExists[IO] (_: UserNameAndPasswordEvent) ( _: DatabaseProxy[IO, UserTable]) )
[error]                                                                                          ^
[error] one error found

1 Ответ

1 голос
/ 20 мая 2019

Оказывается, универсальный тип был неявным, поэтому мне нужно добавить его, как и следовало ожидать.

(mockUserSessionApiGatewayHandler.userExists[IO] 
(_: UserNameAndPasswordEvent) (_:IO , _: DatabaseProxy[IO, UserTable]) )
.expects(testUserNameAndPasswordEvent, *, *)
...