7

こんにちは、リクエスト(いくつかのヘッダーデータとCookie)、レスポンス(Cookieを設定または削除するため)、およびセッション(ユーザーIDとrememberMe情報を保存する)で機能する認証サービスがありました。

play 1.x では、Request、Response、Cookie、および Session を偽造するのは簡単でした。で簡単に設定できましたSession.current().set(new Session())。play 2.0 では、これはもう機能しません。

リクエストに Cookie を追加するにはどうすればよいですか? どうすればセッションを操作できますか? FakeApplication と FakeRequest が存在するのを見ましたが、それらを操作する方法がわかりませんでした。

どんなヒントでも大歓迎です。

4

2 に答える 2

14

Play 2.0 の準備ができていませんでしたが、Play 2.1 (および現在のマスター) では次のように記述できます。

fakeRequest(GET, "/foo")
    .withSession("bar", "baz")
    .withCookies(cookie("bah", "toto"));
于 2012-04-30T11:41:56.197 に答える
4

play1.x と同じようにできます。中心点はContext. さらに、DummyRequest必要なメソッドを実装する を作成する必要があります。その後、以下を作成することが可能です

final Request request = new DummyRequest();
Context.current.set(new Context(request, new HashMap <String, String>(), 
        new HashMap <String, String>()));

Context.current().session()テストでは、Context.current().response()またはを取得できますContext.current().request()

ここでtest-exampleを見ることができます。

于 2012-05-09T12:53:52.747 に答える