doorkeeperでプロテクトされているコントローラーのテスト
RailsでAPIなコントローラーをテストしようにもbefore_filterでトークンによるプロテクションがされているのが当たり前。それをテストする際にどうやるのかって所なんですが、普通にドキュメントに書かれてる
https://github.com/applicake/doorkeeper/wiki/Testing-protected-controllers
つまりはdoorkeeper_tokenが返す結果をStubで処理させてプロテクションを通過させる的な感じかと。まぁドキュメントに書いてるとおりに
require "spec_helper"
describe Api::SampleController do
  fixtures :sample
  describe "GET #index" do
    let(:token) {
      stub(:accessible? => true)
    }
    before do
      controller.stub(:doorkeeper_token) { token }
    end
    it "respond with 200" do
      get :index, :format => :json
      expect(response).to be_success
    end
  end
end
letでdoorkeeper_tokenなstubを作る。今回やってないけど、scopeとか指定も出来る模様。でbeforeでcontrollerのdoorkeper_tokenをletで作ったモックを指定?な感じ。でitなテスト部で普通にテスト書けばオッケー的な