我正在尝试测试在 before 过滤器中使用 http 令牌身份验证的控制器。我的问题是当我使用 curl 传递令牌时它工作正常,但在我的测试中它总是失败(我正在使用 rspec btw)。尝试了一个简单的测试来查看令牌是否完全通过,但似乎没有这样做。我是否缺少任何东西来让测试将令牌实际传递给控制器?
这是我之前的过滤器:
def restrict_access
authenticate_or_request_with_http_token do |token, options|
api_key = ApiKey.find_by_access_token(token)
@user = api_key.user unless api_key.nil?
@token = token #set just for the sake of testing
!api_key.nil?
end
end
这是我的测试:
it "passes the token" do
get :new, nil,
:authorization => ActionController::HttpAuthentication::Token.encode_credentials("test_access1")
assigns(:token).should be "test_access1"
end