Rails 3 アプリでかなり基本的な HTTP ダイジェスト認証をセットアップしました。ほとんどの場合、Rails Controller Guideにある例に従います。
私の ApplicationController には before_filter があります:
def digest_authenticate
success = authenticate_or_request_with_http_digest("Application") do |username|
APP_CONFIG["admin"]
end
end
これはすべてうまくいきます。ページは保護されている必要があります。
私は今、RSpec でこれをテストしようとしていますが、惨めに失敗しています。
私はこのSOの受け入れられた答えに従い、そのauthenticate_with_http_digest
方法をサポートファイルに入れました。これが私の実際のテストです:
describe DashboardController do
describe "GET 'index'" do
it "returns http success" do
authenticate_with_http_digest(foo, bar, baz)
visit root_path
response.should be_success
response.code.should == '200'
end
end
end
いくつかの問題:
- 私が電話するかどうかにかかわらず、テストは毎回合格しています
authenticate_with_http_digest
- 私が渡して
authenticate_with_http_digest
いる引数は偽物であり、問題ではないようです。これらは、私が保存したものと一致する必要はありませんAPP_CONFIG["admin"]
か? - before_filterの値を
success
出力digest_authenticate
すると、rspec ヘルパーに正しいパラメーターを渡しても、常に 401 が出力されます。
HTTP ダイジェスト認証を効果的にテストする方法はありますか?
ありがとう!