2
在我的rails項目中,其中一個初始化程序請求並從S3
獲取某些數據。WebMock stub_request不起作用
S3.buckets[CONFIG['aws']['cdn_bucket']].objects['object_name'].read
這打破它使用RSpec的測試套件webmock
寶石
WebMock.allow_net_connect!(:net_http_connect_on_start => true)
我收到以下錯誤,當我嘗試運行測試套件
WebMock::NetConnectNotAllowedError
You can stub this request with the following snippet:
stub_request(:get, "https://bucket.s3.amazonaws.com/object_name").with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'', 'Authorization'=>'AWS AKxxxxxx:Hyxxxxxxxxxx', 'Content-Type'=>'', 'Date'=>'Thu, 14 Apr 2016 15:10:18 GMT', 'User-Agent'=>'aws-sdk-ruby/1.60.2 ruby/1.8.7 i686-darwin15.3.0'}).to_return(:status => 200, :body => "", :headers => {})
添加此存根不能修復錯誤。逸岸,添加以下任一似乎沒有做任何改變:
WebMock.stub_request(:any, /.*amazonaws.*/).with(:headers => {'Accept'=>'*/*', 'Accept-Encoding'=>'', 'Authorization'=>'AWS AKIxxxxxxxxxx:MSxxxxxxxx'}).to_return(:status => 200, :body => "stubbed response", :headers => {})
WebMock.stub_request(:any, /.*amazonaws.*/).to_return(:status => 200, :body => "stubbed response", :headers => {})
它是什麼,我在這裏失蹤?錯誤消息的詳細頭似乎沒有意義在這裏,讓所有類型的請求,以S3
編輯:
我只注意到添加WebMock.disable!
到spec_helper
也導致沒有變化。我是不是將這個存根添加到正確的地方?如果不在spec_helper
中,應該在哪裏添加?
您是否嘗試用代理攔截請求?只是爲了確定該請求是針對amazonaws.com進行的。 – Deva
@Deva由於添加了「WebMock.disable!」並沒有改變,我想這段代碼被添加到了錯誤的地方。我不得不直接將它添加到初始化腳本中並修復它。請求網址是正確的。 – Sinstein