ApplicationController中:
@H_502_2@class ApplicationController < ActionController::Base
before_filter :authenticate_user!
protect_from_forgery
end
@H_404_25@解决方法
DashboardsController:
@H_502_2@class DashboardsController < ApplicationController def index end endDashboardsControllerSpec:
@H_502_2@require 'spec_helper' describe DashboardsController do include Devise::TestHelpers describe "GET 'index'" do it "returns http success" do get 'index' response.should be_success end end end结果:
@H_502_2@Failure/Error: get 'index' NoMethodError: undefined method `authenticate_user!' for #<DashboardsController:0x007fef81f2efb8>Rails版本:3.1.3
Rspec版本:2.8.0
设计版本:1.5.3
注意:我还创建了support / deviser.rb文件,但这没有帮助.有任何想法吗?
@H_502_2@require 'spec_helper'
describe DashboardsController do
before { controller.stub(:authenticate_user!).and_return true }
describe "GET 'index'" do
it "returns http success" do
get 'index'
response.should be_success
end
end
end
更新:
使用上述语法和最新的rspec将给出以下警告
@H_502_2@Using `stub` from rspec-mocks' old `:should` Syntax without explicitly enabling the Syntax is deprecated. Use the new `:expect` Syntax or explicitly enable `:should` instead. Called from `block (2 levels) in <top (required)>'.使用这种新语法
@H_502_2@before do allow(controller).to receive(:authenticate_user!).and_return(true) end