Capybara&Rspec:如何删除帐户?

Lea*_*RoR 3 ruby-on-rails devise capybara rspec-rails ruby-on-rails-3

我正在使用Devise并为用户删除自己帐户的情况编写测试但我仍然坚持如何调用确认框并单击确定.

这是链接和我的测试:

<p><%= link_to "Delete my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %></p>
Run Code Online (Sandbox Code Playgroud)

规格/请求/ users_spec.rb

scenario 'user deletes account' do
   make_user_and_login
   click_link('Account Settings')
   page.should have_selector('title', :text => 'Account Settings')
   click_link('Delete my account')
   # Are You Sure?
   # click OK in confirm box
   # page.should etc.....
end
Run Code Online (Sandbox Code Playgroud)

怎么做?

rob*_*son 6

确保capybara使用支持javascript的驱动程序.然后尝试这个:

page.driver.browser.switch_to.alert.accept
Run Code Online (Sandbox Code Playgroud)

或者,要取消:

page.driver.browser.switch_to.alert.dismiss
Run Code Online (Sandbox Code Playgroud)

  • 你正在使用`Capybara :: RackTest`,这是一个没有javascript支持的无头浏览器. (2认同)