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なテスト部で普通にテスト書けばオッケー的な