0

この優れた質問と回答のおかげで、アプリケーション コントローラーに次のコードを追加することで 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 保護から除外する方法はありますか?

4

1 に答える 1

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/

于 2012-11-25T00:15:25.673 に答える