3
我需要一些幫助來測試以下內容。我做RailsCast有關保護的API:http://railscasts.com/episodes/352-securing-an-api?view=asciicast我如何測試基於令牌的身份驗證?
我有一個before_filter
一個RequestController
檢查,如果要求有一個令牌:
class RequestsController < ApplicationController
include ActionController::MimeResponds
include ActionController::HttpAuthentication::Token::ControllerMethods
before_filter :restrict_access
respond_to :json
#...
def authenticate
return restrict_access
end
private
def restrict_access
authenticate_or_request_with_http_token do |token, options|
ApiKey.exists?(access_token: token)
end
end
end
我沒有RSpec的測試看起來像:
it 'responds successfully to generic request because of key protection' do
api_key = ApiKey.create
api_key.save!
get :index
request.headers["token"] = api_key.access_token
expect(response).to be_success # test for the 200 status-code
end
結果:expected success? to return true, got false
我不明白我怎麼可以注入有效的api_key到re追求,以便迴應將評估爲真實。有任何想法嗎?謝謝。
can I arbitra rily命名其他'.headers []'值?例如,我可以執行'request.headers [「username」] =「Joe」',然後用'request.headers [「username」]'在我的控制器中引用它。 –
看起來您忘記在第二個示例中的access_token後添加右括號。 – couchoud