私の Rails プロジェクトでは、イニシャライザの 1 つが から特定のデータを要求してフェッチしますS3
。
S3.buckets[CONFIG['aws']['cdn_bucket']].objects['object_name'].read
webmock
これにより、 gemを使用する rspec テスト スイートが壊れます
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!
also に追加してspec_helper
も変化がないことに気付きました。スタブを正しい場所に追加していませんか? にない場合、どこに追加する必要がありspec_helper
ますか?