4

私の 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ますか?

4

1 に答える 1