controllerのconcernsに対するテスト方法

概要

Controller concernsに対するテストの書き方を記載します。

環境

テストの書き方

最初に、完成コードを示します。 :arrow_down: concernsです。

app/controllers/concerns/vote.rb

module Vote
  extend ActiveSupport::Concern

  def upvote
  end
end

:arrow_down: concernsに対するテストの実装です。

spec/controllers/concerns/vote_spec.rb

require 'rails_helper'

RSpec.describe Vote, type: :controller do
  controller ApplicationController do
    include Vote
  end

  before do
    routes.draw { put 'upvote' => 'anonymous#upvote' }
  end

  describe 'PUT #upvote' do
    specify 'return http success' do
      put :upvote
      expect(response).to have_http_status(:success)
    end
  end
end

以上です。