minoppp411
@minoppp411 (林 みのり)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

削除リンクとユーザー削除に対する統合テストが通らない

解決したいこと

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

1Answer

問題のコード付近で

puts response.parsed_body

としてみて、実際の条件で吐き出されているHTMLが期待のものかどうか見てみるとか?

0Like

Comments

  1. @minoppp411

    Questioner

    ありがとうございます。間違っている箇所がわかりました。

Your answer might help someone💌