0
재생 프레임 워크 2.5와 함께 Silhouette v4.0 라이브러리를 사용하고 있습니다. 그리고 play specs2를 사용하여 테스트 코드를 작성하려고했습니다. 하지만 테스트 클래스에서 다음과 같은 오류가 발생합니다.매개 변수 env에 대한 암시 적 값을 찾을 수 없습니다. com.mohiva.play.silhouette.api.Environment [utils.auth.DefaultEnv]
오류 메시지가
[error] could not find implicit value for parameter env: com.mohiva.play.silhouette.api.Environment[utils.auth.DefaultEnv]
.withAuthenticator[DefaultEnv](identity.loginInfo)
^
여기가이 클래스와 유사한 다른 테스트 클래스가 제대로 컴파일하고 실행할 수있는 테스트 클래스
package controllers
import com.google.inject.AbstractModule
import org.joda.time.DateTime
import org.specs2.specification.Scope
import org.specs2.matcher._
import org.specs2.mock._
import play.api.test._
import play.api.libs.json._
import play.api.libs.json.Json
import play.api.libs.json.Reads._
import play.api.libs.functional.syntax._
import play.api.libs.concurrent.Execution.Implicits._
import play.api.libs.mailer.{ MailerClient, Email }
import play.api.inject.guice.GuiceApplicationBuilder
import play.api.inject.bind
import com.mohiva.play.silhouette.test._
import com.mohiva.play.silhouette.api._
import com.mohiva.play.silhouette.api.repositories.AuthInfoRepository
import com.mohiva.play.silhouette.api.util._
import com.mohiva.play.silhouette.impl.providers._
import net.codingwell.scalaguice.ScalaModule
import utils.auth.DefaultEnv
class TestControllerSpec extends PlaySpecification with Mockito {
"case" in new Context {
new WithApplication(application) {
val request = FakeRequest(POST, "/api/test")
.withAuthenticator[DefaultEnv](identity.loginInfo) // <-
val result = route(app, request).get
status(result) must be equalTo OK
}
}
trait Context extends Scope {
val identity = User(
loginInfo = LoginInfo(..)
..
)
implicit val env = FakeEnvironment[DefaultEnv](Seq(identity.loginInfo -> identity))
class FakeModule extends AbstractModule with ScalaModule {
def configure() = {
bind[Environment[DefaultEnv]].toInstance(env)
}
}
lazy val application = new GuiceApplicationBuilder()
.overrides(new FakeModule)
.build
}
}
입니다. 범위와 함축적 인 문제가 있습니다. 따라서 컴파일을 제대로 할 수있는 다른 테스트 클래스를 모두 가져 오려고했습니다. 그러나 여전히 컴파일 할 수 없습니다. 일부 가져 오기가 누락 되었습니까?
이 문제를 해결하려면 최후의 수단으로 생각합니다. 그러나 어쨌든 그것을 빨리 해결하십시오. 어쨌든 귀하의 조언을 주셔서 감사합니다. – Gianfrance