削除リンクとユーザー削除に対する統合テストが通らない
Q&A
Closed
解決したいこと
railsチュートリアル6.0の10章にて削除リンクとユーザー削除に対する統合テストを通したいです。
解決方法を教えてください
発生している問題・エラー
Failure:
UsersIndexTest#test_index_as_admin_including_pagination_and_delete_links [/Users/minori/Desktop/sample_app/test/integration/users_index_test.rb:19]:
<delete> expected but was
<User 19>..
Expected 0 to be >= 1.
該当するソースコード
users_test_index.rb
require 'test_helper'
class UsersIndexTest < ActionDispatch::IntegrationTest
def setup
@admin = users(:michael)
@non_admin = users(:archer)
end
test "index as admin including pagination and delete links" do
log_in_as(@admin)
get users_path
assert_template 'users/index'
assert_select 'div.pagination'
first_page_of_users = User.paginate(page: 1)
first_page_of_users.each do |user|
assert_select 'a[href=?]', user_path(user), text: user.name
unless user == @admin
assert_select 'a[href=?]', user_path(user), text: 'delete'
end
end
assert_difference 'User.count', -1 do
delete user_path(@non_admin)
end
end
test "index as non-admin" do
log_in_as(@non_admin)
get users_path
assert_select 'a', text: 'delete', count: 0
end
end
_user.html.erb
<li>
<%= gravatar_for user, size: 50 %>
<%= link_to user.name, user %>
<% if current_user.admin? && !current_user?(user) %>
| <%= link_to "delete", user, method: :delete,
data: { confirm: "You sure?" } %>
<% end %>
</li>
自分で試したこと
調べた他人のソースコードを見て何度も模写しました
何度調べてもわかりません。通るはずなのですが、、、
よろしくお願いいたします
0