5
にコントローラを注入だから2.4ドキュメント(https://playframework.com/documentation/2.4.x/ScalaTestingWithScalaTest#Unit-Testing-Controllers)を再生するようによれば、コントローラはこの再生/ Scalaは試験
ように動作するテストのために、このtrait ExampleController {
this: Controller =>
def index() = Action {
Ok("ok")
}
}
object ExampleController extends Controller with ExampleController
ような形質として設定されるべきです
class ExampleControllerSpec extends PlaySpec with Results {
class TestController() extends Controller with ExampleController
"Example Page#index" should {
"should be valid" in {
//test code
}
}
}
しかし、私は私のコントローラは、このようになりますGuiceの依存性注入を使用して、2.4ドキュメンテーション(https://playframework.com/documentation/2.4.x/ScalaDependencyInjection)を再生するために従っています:
@Singleton
class ExampleController @Inject() (exampleService: IExampleService) extends Controller {
def index() = Action {
Ok("")
}
}
コントローラはもはや特性ではなく、私はこれを次のようなテストに混ぜることはできません:with ExampleController
、上記のテストをどのようにして動作させるのですか?
感謝を使用してプレイをテストし、Guiceの詳細情報を見つけることができます:あなたのコントローラがすでにこれは継承のようにしても、
extends Controller
排除することができます。ちなみに、どのように(同じコントローラに注入されている)サービスを同じテストにも注入する方法はありますか? – Caballero私はサービスを模倣したいと思います。例えば:ScalaMockを使用します。 – jazmit
ExampleController命令をテストする代わりに、クラスTestControllerを作成してテストすることのメリットは何でしょうか? – gun