Ruby on rails Rspec+;坎坎误差
管理规范rbRuby on rails Rspec+;坎坎误差,ruby-on-rails,ruby,rspec,devise,cancan,Ruby On Rails,Ruby,Rspec,Devise,Cancan,管理规范rb it "checks access for user" do visit rails_admin_path login(:user) #helper method expect(page).to raise_error(CanCan::AccessDenied) end 控制台输出 Failure/Error: login(:user) CanCan::AccessDenied: You are not authorized to access this page
it "checks access for user" do
visit rails_admin_path
login(:user) #helper method
expect(page).to raise_error(CanCan::AccessDenied)
end
控制台输出
Failure/Error: login(:user)
CanCan::AccessDenied:
You are not authorized to access this page.
但测试仍然是红色的。为什么以及如何修复它?您看过这篇文章了吗 与其访问URL,不如使用can?方法来确定:用户是否允许访问rails管理路径 我猜你在用Desive?如果是这样的话,我发现另一篇可能是这样的文章。他们建议包括一个模块,允许设计测试助手 或者,切换到CanCanCan(这就是我们目前使用的),它工作起来更容易(因为不再支持CanCan):
您能告诉我们您的登录助手方法是什么样子的,以及您正在用什么来存根用户吗<代码>:用户(user@gmail.com)无法访问管理页面,
:admin(admin@gmail.com)
context 'sign_in' do
scenario 'with valid information should redirect to the administration dashboard', :js => true do
sign_in_with sign_in_url, registered_user.email, 'validpassword', 'admin_user'
expect(page).to have_content('Site Administration')
end
scenario 'with invalid information', :js => true do
sign_in_with sign_in_url, registered_user.email, 'invalidvalidpassword', 'admin_user'
expect(page).to have_content('Invalid email or password')
end
end