Play Framework 1.2.3の機能テストでセッション値をどのように偽装しますか?私のような簡単なテストやってる機能テストでは、Play FrameworkでSecureモジュールを使用して認証されたユーザーを偽装する方法を教えてください。
:
@Before public void setupHTTP() { Session.current.set(new Session()); }
@Test public void testRedirectToUserHomeForAuthenticatedUserWhenBlankAction() { authenticateUser("[email protected]"); Response response = GET("/user/blank"); assertRedirected(response, "/user/home"); }
方法:テストを実行する前に
は、私はそれがテストの一部をすることを望んで、空白のセッションを設定しました
authenticate(String userEmail)はちょうどセッションマップ内のキー「ユーザー名」を置く:
protected void authenticateUser(String userEmail) { // Put in session the email Session.current.get().put(USERNAME, userEmail); }
しかしにおけるテストの実行を私が理解できる限り、別のスレッド、設定したセッションが表示されません...
機能テストでセッション値を偽装する方法はありますか?
こんにちは:
Application.list()がこのようなものですSeb、コントローラの私の行動は、認証されたユーザを持つかどうかに応じて異なった動作をするはずです。とにかく、私はあなたの答えをよく理解していませんでした。機能テスト中にセッションで値を設定する方法をさらに説明できますか?ありがとうございます –
私の解決策は、セッションで値を入れないで実際にユーザーを認証するため、ユーザーのアプリケーションを使用する場合と全く同じように振る舞います。 –
あなたは正しいです。私はまだ認証を実装せずに何かをテストしようとしていましたが、機能テストではシステムのさまざまな部分の統合をテストする必要がありました。 私は認証を実装しただけでPOST( "/ login"、params)を作成してから、他の要求を行うことができます。ありがとう。 –