Grape+Rspec環境でAPIをテストする
既存RailsアプリにRspecを入れる - コピペコードで快適生活
の続き。
まず、JSONのテストを簡単にするgemを入れる。
gem 'json_expressions'
テストコードはこんな感じで書ける。
require 'rails_helper' require 'json_expressions/rspec' describe "GET api/orders/:order_ids" do context '存在しないIDを指定するとき' do it '空の配列が返る' do order_ids = "aaaa,bbbb" get "/api/v1/orders/#{order_ids}" pattern = { orders: [], total_count: 0 } expect(response.status).to eq 200 expect(response.body).to match_json_expression(pattern) end end end describe 'PATCH api/orders/:order_id/cancel' do context '存在しないIDを指定するとき' do it '204が返る' do order_id = "aaaa" params = {xxx: 2} patch "/api/v1/orders/#{order_id}/cancel", params expect(response.status).to eq 204 end end end