私はユニットテストにクラスをDIしようとしていますが、以下を使用しています:
val injector = new GuiceInjectorBuilder().injector()
val secured = injector.instanceOf[Secured]
しかし、私が試してそれを実行すると、私は次のエラーが表示されます:
[info] Exception encountered when attempting to run a suite with class name: org.scalatest.DeferredAbortedSuite *** ABORTED ***
[info] com.google.inject.ConfigurationException: Guice configuration errors:
[info]
[info] 1) No implementation for play.api.libs.ws.WSClient was bound.
[info] while locating play.api.libs.ws.WSClient
[info] for parameter 3 at com.fredley.Secured.<init>(Secured.scala:36)
[info] while locating com.fredley.Secured
...
私は間違って何をしていますか?
回答:
回答№1は1この問題は、アプリケーションからインジェクタを構築していない(Play依存関係がロードされていないことを意味する)。これにより問題は解決しました。
val application = new GuiceApplicationBuilder().build
val secured = application.injector.instanceOf[Secured]