This is a cache of http://qiita.com/taki3/items/cf1edf06ec54368fdb80. It is a snapshot of the page at 2017-09-24T03:15:37.296+0900.
Controller の concerns を Rspec を使用して<strong>テスト</strong>する方法 - Qiita

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

  • 0
    Like
  • 0
    Comment

    やりたいこと

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

    実現方法

    ApplicationControllerconcernsinclude して、テストを実装する。 :arrow_down: は、実装のイメージである。

    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