2016-05-16 46 views
0

我试图从轨道4.0升级到4.1设计参数消毒剂不能与黄瓜/水豚/ Rspec的工作

我所有的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 

回答

0

丢弃的设计回到v3.5.9,并且似乎把它赶走。 很高兴听到关于如何使用设计4 +的建议。

0

移动sign_in(等)方法对ActionDispatch::IntegrationTest类内解决这个问题对我来说:

之前(失败):

class ActionDispatch::IntegrationTest 
    ... 
end 

def sign_in(email='[email protected]') 
    visit "/en/users/sign_in" 
    ... 
end 

(工作)后:

class ActionDispatch::IntegrationTest 
    ... 

    def sign_in(email='[email protected]') 
    visit "/en/users/sign_in" 
    ... 
    end 
end