测试具有before_filter的rails应用程序:authenticate_user!对于大多数控制器,我不能让Capybara保留会话.
我有Capybara配置PhantomJS与poltergeist.
我使用以下帮助器:
require 'spec_helper' include Warden::Test::Helpers module FeatureHelpers def login(user = FactoryGirl.create(:default_user)) login_as user,scope: :user user end end
require 'spec_helper' include Warden::Test::Helpers feature 'Leads Data Tasks View' do before(:each) do @user = login end after{ Warden.test_reset! } context "clicking a task button" do scenario "login persists across multuple actions",js: true do visit '/tasks' page.should have_selector('#parse',count: 1) end end end
当我在这里显示测试时,会通过.但是,如果我在执行AJAX操作的某个事件上调用了一个click_link,或者如果我只是尝试访问“/ tasks”两次,那么断言将会失败,因为我会被重定向到该应用的登录页面.
我尝试了一些不同的方法,包括设置一个Capybara::Session,但我仍然得到401代码的AJAX请求,我只能成功访问一次规格.
我究竟做错了什么?
解决方法
原文地址:https://www.jb51.cc/ruby/273381.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。