0

私が探しているものは実質的にすべてタイトルに記載されています-認証が機能したかどうかを確認するために、テストで warden ユーザー変数にアクセスする必要があります。認証をうまくテストしようとするだけで、別の方法も可能です:)

should "authenticate" do
    post "/login", {:login => "test_login", :password => "password"}, {"HTTP_HOST" => "test.host"}
    assert last_response.redirect?
    assert_equal last_response.env["warden"].user.login, "test_login"
end
4

1 に答える 1

0

ラックテストスタイルのフルスタックテストでは、内部リクエスト環境を取得できません。特定のユーザーとしてログインしていることを確認する場合は、リダイレクトURL(ユーザーを特定できるURLにリダイレクトする場合)のようなものを確認するか、リダイレクトに従う必要があります(rack-testfollow_redirect!ヘルパーで簡単に)次に、HTMLでユーザーIDの証拠を探します。

Warden自体を実際にテストする必要はないと思いましたが、Wardenに正しい情報を提供し、ミドルウェアスタックでそれを操作していないことを確認する必要があります。

本物のフォーム入力と送信を行うのに、 Cucumberのようなものが便利な場合があります。

最後に、Wardenには独自のテストヘルパー(間違いなく連携しrack-testます)があるため、各テストでログイン要求/リダイレクトサイクルを実際に実行しなくても、ログインするように要求を設定できます-https://github.com/ hassox / warden / wiki/testingに詳細があります。

于 2011-06-02T17:23:27.057 に答える