簡體   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