我创建了一个函数,管理员可以在其仪表板上删除用户帐户。该功能在实践中成功运行。
((我已通过管理控制台删除了用户帐户,并已通过Rails控制台确认。)
但是,我无法通过rspec测试来通过对该功能的测试。它总是返回用户帐户仍然存在。
网站上的表格:
<%= form_for @user, url: admin_user_path(@user), data: { confirm: 'Are you sure?' }, html: { method: :delete } do |f| %>
<%= f.submit "Delete account", class:"danger", data: { test: "delete-user-account" } %>
<% end %>
测试:
require 'rails_helper'
RSpec.feature 'deleting users' do
let!(:admin) { create :admin }
scenario 'successfully deleted an external user account' do
sign_in admin, scope: :admin
user = create(:user)
visit admin_user_path(user)
find('[data-test="delete-user-account"]').click
visit root_path
expect(user).not_to be_present
end
end
因为您需要接受警报“确定吗?”
如果您使用Selenium API,则可以执行以下操作:
find('[data-test="delete-user-account"]').click
page.driver.browser.switch_to.alert.accept
visit root_path
expect(user).not_to be_present