RSpecで画像をアップロードするAPIのテストを書く
Rack::Test::Methods
に含まれるRack::Test::UploadedFile.new
を使う。Gemfile.lockを見れば分かるようにrack-test
はデフォルトでRailsアプリケーションにインストールされている。
以下、grapeで作成した画像をアップロードするAPIに対する正常系のテストの例である。
describe Hoge::Image::CreateAPI, type: :request do describe 'POST /Image' do let(:path) { '/api/v1/image/' } let!(:user) { create(:user) } let!(:access_token) { user.activate.access_token } let(:valid_headers) { { 'Access-Token' => access_token } } context 'when param is valid' do let(:valid_params) do { image: { image: Rack::Test::UploadedFile.new('path/forTest.png', 'image/png') } } end it_behaves_like 'require_login', :post describe 'response' do before do post path, params: valid_params, headers: valid_headers @json = JSON.parse(response.body) end it 'returns 201' do expect(response.status).to eq(201) end it 'contains success message' do expect(@json['message']).to eq('Success') end end end end end