感谢this excellent question and answer,我已经了解了如何通过在应用程序控制器中添加以下代码来保护我的rails应用程序:
before_filter :authenticate
protected
def authenticate
authenticate_or_request_with_http_basic do |username, password|
username == "username" && password == "password"
end
end
这一切都很好,但我注意到我写的所有测试(全部通过)现在都失败了。当我注释掉before_filter调用时,它们都会再次通过。
我该如何解决这个问题?有没有办法从htaccess保护中排除测试?
答案 0 :(得分:1)
您可以通过包含基本身份验证来更改测试,请参阅:
def test_should_get_index
@request.env["HTTP_AUTHORIZATION"] = "Basic " + Base64::encode64("username:password")
get :index
assert_response :success
assert_not_nil assigns(:articles)
end
来源:http://flip.netzbeben.de/2008/06/functional-test-for-http-authentication-in-rails-2/