我正在尝试实施Oauth并正在创建一个请求令牌的测试。下面的代码是我用于请求令牌的控制器测试。我的测试中断的地方是代码到达post :request_token
,我从上面得到的错误只有Authorizations控制器的错误。
以下是我的测试代码:
def test_request_token
@options = default_oauth_parameters(api_keys(:first))
@signature = OAuth::Signature::HMAC::SHA1.new(
RequestMock.new('POST', @request.url + 'oauth/request_token', @options)
) do
[nil, api_keys(:first).secret]
end
assert_difference 'Authorization.count' do
binding.pry
post :request_token, @options.merge(:oauth_signature => @signature.signature )
assert_response :success
end
@authorization = api_keys(:first).reload.authorizations.first
assert @authorization
assert_equal "oauth_token=#{@authorization.token}&oauth_token_secret=#{@author ization.secret}", @response.body
end
从我的故障排除,我怀疑我的错误是在config / routes.rb文件中。我相信/ oauth / test_request不接受我使用binding.pry确认的get或post请求。但是,使用下面的代码,您可以看到我的oauth / request_token路由通过get和post映射到授权控制器。它应该能够接受请求。可能有什么不对?
以下是我的routes.rb:
root 'home#index'
resources :api_keys, only: :index
resources :domain_blacklists, except: :show
resources :accounts, except: [:index, :show, :new, :create, :edit, :update, :delete] do
resources :api_keys, constraints: { format: :html }, except: :show
member do
get :settings
end
resources :authorizations
end
get '/oauth/test_request', :to => 'authorizations#test_request', :as => :test_request
get '/oauth/access_token', :to => 'authorizations#access_token', :as => :access_token
match '/oauth/request_token', :to => 'authorizations#request_token', :as => :request_token, via: [:get, :post ]
get '/oauth/authorize', :to => 'authorizations#authorize', :as => :authorize
get 'coverage' => 'coverage#index'
这个问题是我正在实施的定制解决方案,我只期望来自社区的潜在客户从哪里尝试查看。更具体地说,我的代码在主要的ruby包的这一点上断了
gems/actionpack-4.1.7/lib/action_controller/metal/testing.rb
此时:
module Functional # :nodoc:
def set_response!(request)
end
def recycle!
@_url_options = nil
self.formats = nil
self.params = nil
end
end
社区中的某些人是否有良好的领导能力?如果需要进行故障排除,我们可以提供帮助,并提供更多信息。感谢。