水豚和Rspec的:如何删除帐户?(Capybara & Rspec: How to delete

2019-07-31 11:04发布

我使用的设计和写作删除自己的帐号的用户的情况下测试,但我卡在我将如何调出确认框,然后单击确定。

这里是链接和我的测试:

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

规格/请求/ 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

这将如何做呢?

Answer 1:

确保水豚是利用其支持JavaScript的驱动程序。 那么试试这个:

page.driver.browser.switch_to.alert.accept

另外,要取消:

page.driver.browser.switch_to.alert.dismiss


Answer 2:

尝试

page.evaluate_script('window.confirm = function() { return true; }')

这应该工作,然后检查类似

page.should have_content "Account deleted"


Answer 3:

作为@suweller说,大家都用的Capybara::RackTest默认的驱动程序。 然而,如果没有更改任何设置和添加:js => true在我的RSpec的测试,我让他们通过,在之前,我得到了同样的错误,你都拿到。

这让我再使用page.driver.browser.switch_to.alert.accept至少。



文章来源: Capybara & Rspec: How to delete an account?