我正在尝试检查管理员是否在Rspec测试中注销.但是通常的sign_in?方法不能从rspec看到并且不是RSpec Devise Helpers的一部分.
这样的东西就是我所在的
before (:each) do @admin = FactoryGirl.create(:administrator) sign_in @admin end it "should allow the admin to sign out" do sign_out @admin #@admin.should be_nil #@admin.signed_in?.should be_false administrator_signed_in?.should be_false end
解决方法
我想这真的是你需要的
How To: Test controllers with Rails 3 and 4 (and RSpec)
只需检查current_user.应该是零
加.好的做法是使用这样的语法
-> { sign_out @admin }.should change { current_user }.from(@admin).to(nil)