设计参数消毒剂不适用于 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,这似乎让它消失了。
很高兴听到关于如何使用 devise 4+ 的建议。
将 sign_in
(和其他)方法移动到 ActionDispatch::IntegrationTest
class 中为我解决了这个问题:
之前(失败):
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
我正在尝试从 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,这似乎让它消失了。 很高兴听到关于如何使用 devise 4+ 的建议。
将 sign_in
(和其他)方法移动到 ActionDispatch::IntegrationTest
class 中为我解决了这个问题:
之前(失败):
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