Ruby on rails 水豚;Rspec:如何删除帐户?

Ruby on rails 水豚;Rspec:如何删除帐户?,ruby-on-rails,ruby-on-rails-3,devise,capybara,rspec-rails,Ruby On Rails,Ruby On Rails 3,Devise,Capybara,Rspec Rails,我正在使用Desive并为用户删除自己帐户的场景编写一个测试,但我一直无法确定如何调用确认框并单击OK 以下是链接和我的测试: <p><%= link_to "Delete my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %></p> 如何做到这一点?试试看 page.eva

我正在使用Desive并为用户删除自己帐户的场景编写一个测试,但我一直无法确定如何调用确认框并单击OK

以下是链接和我的测试:

<p><%= link_to "Delete my account", registration_path(resource_name), :data => { :confirm => "Are you sure?" }, :method => :delete %></p>
如何做到这一点?

试试看

page.evaluate_script('window.confirm = function() { return true; }')
这应该行得通,然后检查以下内容

page.should have_content "Account deleted"

确保水豚使用的驱动程序支持javascript。 然后试试这个:

page.driver.browser.switch_to.alert.accept
或者,要取消:

page.driver.browser.switch_to.alert.dismiss

正如@suweller所说,我们都在使用
Capybara::RackTest
默认驱动程序。然而,在我的rspec测试中,没有更改任何设置,也没有添加
:js=>true
,我就让它们通过了测试,而之前我得到了与您相同的错误


这允许我使用
page.driver.browser.switch_to.alert.accept至少。

希望这个答案能帮助你:我在尝试这个时遇到这个错误:
Failure/error:page.evaluate_脚本('window.confirm=function(){return true;})Capybara::NotSupportedByDriverError:Capybara::NotSupportedByDriverError
我很久以前也收到了这个,不是舒尔引起的。对我来说,通过更新我的gems解决了这个问题,因为您使用的是
Capybara::RackTest
。此驱动程序不支持执行任何JavaScripti。不幸的是,我得到:
Failure/Error:page.driver.browser.switch_to.alert.accept NoMethodError:undefined方法“switch_to”for#
您使用的是
Capybara::RackTest
,这是一个不支持javascript的无头浏览器。
page.driver.browser.switch_to.alert.dismiss