地方でリモートワーク in Iwate

東京の受託開発会社でリモートワークしてます。

AWS S3のテストをする際にresponseをstub化する

スポンサーリンク

f:id:ihatov08:20171003121303j:plain

amazonのs3をrails app内で使用しています。 テストを書く際もs3にputする必要ないですよね。 はじめはclass_evalで該当コードをオーバーライドしていたのですが、 まじでいけてない! オーバーライドするメソッドが修正になったらテストも修正しないといけない! と思ったら、aws sdk rubyにちゃんとstubの機能が用意されていました。

    Aws.config[:s3] = {
      region: 'ap-northeast-1',
      credentials: Aws::Credentials.new('dummy_id', 'dummy_secret')
    }

    Aws.config.update(stub_responses: true)

これでresponseがstub化されるので、テストでs3に投げられることはありません!