Я пытаюсь обновить приложение Scala / Play до Play 2.7
, Scala 2.12.11
.
У меня есть следующий тест, который, вероятно, работал до того, как я обновил Play и Scala.
После обновления я получил следующую ошибку компиляции:
Error: could not find implicit value for evidence parameter of type org.specs2.specification.core.AsExecution[org.specs2.concurrent.ExecutionEnv => org.specs2.matcher.MatchResult[scala.concurrent.Future[services.AuthenticationResult]]]
import org.specs2.concurrent.ExecutionEnv
import org.specs2.mutable.Specification
import scala.concurrent.duration._
class AuthenticationServiceSpec extends Specification {
"The AuthenticationService" should {
val service: AuthenticationService = new MyAuthenticationService
"correctly authenticate Me" in { implicit ee: ExecutionEnv =>
service.authenticateUser("myname", "mypassowrd") must beEqualTo (AuthenticationSuccessful).await(1, 200.millis)
}
}
}
Чтобы попытаться устранить ошибку компиляции, я добавил неявный параметр в конструктор класса ( Кстати, как это работало раньше, без неявного параметра?):
import org.specs2.concurrent.ExecutionEnv
import org.specs2.mutable.Specification
import scala.concurrent.duration._
import scala.concurrent.Future
import org.specs2.specification.core.AsExecution
import org.specs2.matcher.MatchResult
class AuthenticationServiceSpec(implicit ee: AsExecution[ExecutionEnv => MatchResult[Future[AuthenticationResult]]]) extends Specification {
"The AuthenticationService" should {
val service: AuthenticationService = new MyAuthenticationService
"correctly authenticate Me" in { implicit ee: ExecutionEnv =>
service.authenticateUser("myname", "mypassowrd") must beEqualTo (AuthenticationSuccessful).await(1, 200.millis)
}
}
}
Однако во время выполнения, когда я запускаю тест, я получаю сообщение об ошибке:
Can't find a suitable constructor with 0 or 1 parameter for class org.specs2.specification.core.AsExecution
Исходя из конструктора AsExecution
, это имеет смысл ...
Как я могу решить эту проблему?