Edited at

Controller の concerns を Rspec を使用してテストする方法


やりたいこと

Controller の concerns を RSpec を使用してテストを行いたい。


実現方法

ApplicationControllerconcernsinclude して、テストを実装する。

は、実装のイメージである。

app/controllers/concerns/vote.rb

module Vote

extend ActiveSupport::Concern

def upvote
end
end

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


バージョン


  • Ruby 2.4.0

  • Rails 5.0.1

  • Rspec 3.5.4