【问题标题】:Devise Parameter Sanitizer not working with Cucumber / Capybara / Rspec设计参数消毒剂不适用于 Cucumber / Capybara / Rspec
【发布时间】:2016-05-16 14:29:45
【问题描述】:

我正在尝试从 rails 4.0 升级到 4.1

我所有的登录测试都突然失败并出现以下错误:

undefined method `visit' for #<Devise::ParameterSanitizer:0x007fe83cf0b898> (NoMethodError)

有人遇到过这个错误吗?知道如何解决吗? 看起来 step_definitions 的范围指向了错误的对象,但我不知道如何将它指向一些合理的东西。

这些步骤都在调用类似这样的方法:

def sign_in_as_client
  visit 'users/sign_in'
  fill_in "user_login", :with => @client_params[:email]
  fill_in "Password", :with => @client_params[:password]
  click_button "Sign in" rescue nil
end

【问题讨论】:

    标签: ruby-on-rails rspec devise cucumber capybara


    【解决方案1】:

    将设计退回到 v3.5.9,这似乎让它消失了。 很高兴听到有关如何处理设计 4+ 的建议。

    【讨论】:

      【解决方案2】:

      sign_in(和其他)方法移到ActionDispatch::IntegrationTest 类中为我解决了这个问题:

      之前(失败):

      class ActionDispatch::IntegrationTest
        ...
      end
      
      def sign_in(email='scott.miller@test.com')
        visit "/en/users/sign_in"
        ...
      end
      

      之后(工作):

      class ActionDispatch::IntegrationTest
        ...
      
        def sign_in(email='scott.miller@test.com')
          visit "/en/users/sign_in"
          ...
        end
      end
      

      【讨论】:

        猜你喜欢
        • 2013-12-01
        • 1970-01-01
        • 2021-02-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多