コピペコードで快適生活

明日使えるソースを自分のために

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