PlayFramework cookie送受信のcontrollerテスト

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

PlayFrameworkのcontrollerテストでcookieの送受信を行う

サーバからのset-cookieヘッダーを確認する。

レスポンスされたFutureインスタンスからcookies()でアクセスできる。get("cookie名")Option[Cookie]が取得できるので、unwrapして値を確認することができる。

 "render the index page from a new instance of controller" in {
   val controller = new HomeController(stubControllerComponents())
   val home = controller.index().apply(FakeRequest(GET, "/"))
   cookies(home).get("cookie-name").getOrElse(Cookie("name", "no-send")).value mustBe "cookie-value"

cookies(res).get("key")で取得したものがOption型と気づかずに四苦八苦してしまった(^_^;)

テストクライアントからcookieヘッダーを送信する。

FakeRequestにwithCookiesで追加できる。

val home = controller.index(None).apply(FakeRequest(GET, "/").withCookies(Cookie("cookie-name", "cookie-value")) )