According to the documentation in the Devise home page, we can use the following before_filter to control the user access on specific controller functions.
before_filter :authenticate_user!
But when i try to test the controller function in RSpec, i got the following error.
Failure/Error: post :create
undefined method `authenticate!’ for nil:NilClass
After searching in Google, i found the solution which said that the Devise::TestHelper should be included in the controller spec as follow.
require 'spec_helper'
describe ServicesController do
include Devise::TestHelpers
render_views
describe "access control" do
it "should deny access to 'create'" do
post :create
response.should redirect_to(new_user_session_path)
end
it "should deny access to 'destroy'" do
delete :destroy, :id => 1
response.should redirect_to(new_user_session_path)
end
end
end
Done =)
Reference: Google Group – RSpec 2, Devise and Rails 3

simple, but nice.
LikeLike
Thanks. =)
LikeLike