繁体   English   中英

Devise Parameter Sanitizer无法与Cucumber / Capybara / Rspec一起使用

[英]Devise Parameter Sanitizer not working with Cucumber / Capybara / Rspec

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

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

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

将设计放回v3.5.9,这似乎使它消失了。 很高兴听到关于设计4+的建议。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM