describe GameSystem::Client do
def client
GameSystem::Client.new(signature_method: 'HMAC-SHA1', oauth_key: 'kk', oauth_secret: 'bb', oauth_access_token_url: 'https:://localhost')
end
before :each do
WebMock.reset!
end
describe 'response' do
context 'wrong path' do
it 'raises JSON::ParserError on invalid return value' do
stub_request(:get,"https://games.com/game_id/invalid_id").to_return(:status => 200, :body => 'invalid json', :headers => {})
Rails.logger.info "#{client.games_by_id("invalid_id")}"
end
end
end
end
任何人都可以让我知道我做错了什么或者我能做些什么不同?。
它基本上会在行
处抛出此错误 我的客户 @access_token = @consumer.get_access_token(nil)
答案 0 :(得分:0)
如果您能够更加具体地了解您正在尝试做什么,那就太好了。
错误非常自我解释。您收到downcase for nil:NilClass
,因为您尝试拨打downcase
以查找无对象...提供更多信息,我们将能够提供更好的帮助。
答案 1 :(得分:0)
我意识到这个问题已经回来了,但我刚刚在测试套件中遇到了这个问题。听起来很熟悉。
我的错误是
Failure/Error: get :index
ActionView::Template::Error:
undefined method `downcase' for nil:NilClass
事实证明,我正在使用mobile-fu
而我正在对is_mobile_device?
进行存根,而且还没有存根mobile_device
。在某个地方,mobile-fu
试图将设备名称缩小为nil
。通过为mobile_device
添加存根,事情就会消失。在规范的前一个块中,我补充说:
controller.stub(:is_mobile_device? => true, :mobile_device => 'iphone')
如果您不使用mobile-fu,则可能会遇到其他问题。我能够使用pry
和pry-debugger
跟踪实际问题。绝对值得研究的工具。