10.63テストが通りません
Railsチュートリアルの10章
10.4.3 ユーザー削除のテストにて
テストが通らずつまづいています。
教えて頂けると幸いです(; ;)
よろしくお願いいたします。
発生している問題・エラーメッセージ
Running via Spring preloader in process 8870 Started with run options --seed 11876 FAIL["test_index_as_admin_including_pagination_and_delete_links", UsersIndexTest, 1.1001858529998572] test_index_as_admin_including_pagination_and_delete_links#UsersIndexTest (1.10s) <delete> expected but was <User 19>.. Expected 0 to be >= 1. test/integration/users_index_test.rb:19:in `block (2 levels) in <class:UsersIndexTest>' test/integration/users_index_test.rb:16:in `block in <class:UsersIndexTest>' 39/39: [==========] 100% Time: 00:00:01, Time: 00:00:01 Finished in 1.21352s 39 tests, 105 assertions, 1 failures, 0 errors, 0 skips
該当のソースコード
ruby
1#sample_app/users_index_test.rb 2require 'test_helper' 3 4class UsersIndexTest < ActionDispatch::IntegrationTest 5 6 def setup 7 @admin = users(:michael) 8 @non_admin = users(:archer) 9 end 10 11 test "index as admin including pagination and delete links" do 12 log_in_as(@admin) 13 get users_path 14 assert_template 'users/index' 15 assert_select 'div.pagination' 16 first_page_of_users = User.paginate(page: 1) 17 first_page_of_users.each do |user| #<=16行目 18 assert_select 'a[href=?]', user_path(user), text: user.name 19 unless user == @admin 20 assert_select 'a[href=?]', user_path(user), text: 'delete' #<=19行目 21 end 22 end 23 assert_difference 'User.count', -1 do 24 delete user_path(@non_admin) 25 end 26 end 27 28 test "index as non-admin" do 29 log_in_as(@non_admin) 30 get users_path 31 assert_select 'a', text: 'delete', count: 0 32 end 33end
試したこと
参照https://kotaeta.com/61946369
test "index as admin including pagination and delete links"を
下記の通りに変更してみましたが…
ruby
1 User.paginate(page: 1).each do |user| 2 if user.activated? 3 assert_select 'a[href=?]', user_path(user), text: user.name 4 unless user == @admin 5 assert_select 'a[href=?]', user_path(user), text: 'delete' 6 end 7 else 8 assert_select 'a[href=?]', user_path(user), text: user.name, count: 0 9 end 10 end
NoMethodError: undefined method `activated?' とうエラーが出ました。
sample_app/users_index_test.rb
下記の部分をコメントアウトするとテストが通ります。
ruby
1 first_page_of_users = User.paginate(page: 1) 2 first_page_of_users.each do |user| 3 assert_select 'a[href=?]', user_path(user), text: user.name 4 unless user == @admin 5 assert_select 'a[href=?]', user_path(user), text: 'delete' 6 end 7 end 8 assert_difference 'User.count', -1 do 9 delete user_path(@non_admin) 10 end
補足情報(FW/ツールのバージョンなど)
cloud9
Ruby5.1.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。