match-json-schemaCircleCI

match_json_schema compliant with JSON Schema Draft 4.

Usage

RSpec.describe UsersController, type: :controller do
  describe 'GET #show' do
    let(:user) { User.create!(name: :kurou) }

    specify do
      get :show, params: {id: user.id, format: :json}

      schema = {
        type: :object,
        required: %i(id name created_at updated_at),
        properties: {
          id: {type: :integer},
          name: {type: :string},
          created_at: {type: :string},
          updated_at: {type: :string}
        }
      }

      expect(response).to match_json_schema(schema)
    end
  end
end