You are viewing the documentation for the 2.0.x release series. The latest stable release series is 2.4.x.
§機能テストを書く
§テンプレートのテスト
テンプレートは単なる Scala の関数なので、テストから呼び出して結果をチェックすることができます。
"render index template" in {
val html = views.html.index("Coco")
contentType(html) must equalTo("text/html")
contentAsString(html) must contain("Hello Coco")
}
§コントローラのテスト
FakeRequest
を渡せば、どんな Action
コードでも実行することができます。
"respond to the index Action" in {
val result = controllers.Application.index("Bob")(FakeRequest())
status(result) must equalTo(OK)
contentType(result) must beSome("text/html")
charset(result) must beSome("utf-8")
contentAsString(result) must contain("Hello Bob")
}
§ルータのテスト
Action
を自分で呼び出す代わりに、 Router
に任せることもできます。
"respond to the index Action" in {
val Some(result) = routeAndCall(FakeRequest(GET, "/Bob"))
status(result) must equalTo(OK)
contentType(result) must beSome("text/html")
charset(result) must beSome("utf-8")
contentAsString(result) must contain("Hello Bob")
}
§実際に HTTP サーバを起動する
実際の HTTP スタックを通したテストを実施したい場合、テストサーバを起動することができます。
"run in a server" in {
running(TestServer(3333)) {
await(WS.url("http://localhost:3333").get).status must equalTo(OK)
}
}
§Web ブラウザからテストする
ブラウザを通してアプリケーションをテストしたい場合、 Selenium WebDriver を使うことができます。Play は WebDriver を起動した上で、 FluentLenium が提供する便利な API にラップします。
"run in a browser" in {
running(TestServer(3333), HTMLUNIT) { browser =>
browser.goTo("http://localhost:3333")
browser.$("#title").getTexts().get(0) must equalTo("Hello Guest")
browser.$("a").click()
browser.url must equalTo("http://localhost:3333/Coco")
browser.$("#title").getTexts().get(0) must equalTo("Hello Coco")
}
}
次ページ: 上級者向けのトピック
このドキュメントの翻訳は Play チームによってメンテナンスされているものではありません。 間違いを見つけた場合、このページのソースコードを ここ で確認することができます。 ドキュメントガイドライン を読んで、お気軽にプルリクエストを送ってください。