這樣的感覺錯了,因爲我想測試我的控制器 自己...(在我的用戶 控制器除了明確地測試認證)不一定是重複驗證測試過 遍。
這就是爲什麼Devise
爲測試控制器提供自己的test helpers。您不需要每次都測試您的授權碼,您只需要一個助手,在您的測試中授權用戶。
最小設置:
rails_helper.rb
require 'spec_helper'
require 'rspec/rails'
# note: require 'devise' after require 'rspec/rails'
require 'devise'
RSpec.configure do |config|
config.include Devise::TestHelpers, :type => :controller
end
然後,在你的控制器規格:
# in case you use FactoryGirl, if you don't, just create your models as you like
let(:current_user) { FactoryGirl.create(:user) }
before do
# this line is needed for testing Devise controllers
@request.env["devise.mapping"] = Devise.mappings[:user]
sign_in current_user
end