我的 Rails 3 应用程序有一个非常基本的 HTTP Digest Authentication 设置。它主要遵循Rails 控制器指南中的示例:
我的 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"]
吗? - 如果我
success
从digest_authenticate
before_filter 中打印出值,它总是打印出 401,即使我确实将正确的参数传递给我的 rspec 助手。
任何想法如何有效地测试 HTTP 摘要身份验证?
谢谢!