问题
How would you stub Devise in Rails 3 with rSpec. I have a UsersController
and a User
model. Both of which are associated with Devise at the moment, I'm writing controller specs and I really am having a hard time with my expectations as the Devise sign_in
is really jamming up the works.
Any thing will help.
回答1:
I found that it is now pretty easy to do this. There was a problem with rspec2 and devise, but is now solved. I guess you would need to update your gems. Then you can write
require 'spec_helper'
describe DoStuffController do
include Devise::TestHelpers
before (:each) do
@user = Factory.create(:user)
sign_in @user
end
describe "GET 'index'" do
it "should be successful" do
get 'index'
response.should be_success
end
end
end
[UPDATE] On the devise wiki there is now a detailed (and probably more up-to-date) description.
回答2:
You can try mocking the underlying warden (https://github.com/wardencommunity/warden/wiki) object which devise relies upon, here is a link to some details on how you can accomplish this with RSpec: http://www.michaelharrison.ws/weblog/?p=349 (entry covers some other topics as well, the solution you want is towards the bottom of the page.)
来源:https://stackoverflow.com/questions/3387485/stubbing-devise-in-rspec-and-rails3