前提・実現したいこと
現在Ruby on Rails チュートリアル 10.3.4 リスト10.48の統合テストがパスしません。
原因を特定したいです。
assert_selectにてテストされるパス名がおかしいように感じます。
少々改変している部分もありますが、基本的にはチュートリアルの内容と同じです。
どなたかご回答お願い申し上げます。
発生している問題・エラーメッセージ
Expected at least 1 element matching "a[href="/users/452191684"]", found 0.. Expected 0 to be >= 1.
該当のソースコード
実装コード
<%= provide(:title, "All users" )%> <h1>ユーザー一覧</h1> <%= will_paginate @users, previous_label: '前へ', next_label: '次へ' %> <ul class="users"> <% @users.each do |user| %> <li> <%= gravatar_for user, size: 50 %> <%= link_to user.name, user %> </li> <% end %> </ul> <%= will_paginate @users, previous_label: '前へ', next_label: '次へ' %>
テストコード
require 'test_helper' class UsersIndexTest < ActionDispatch::IntegrationTest def setup @user = users(:michael) end test "index including pagination" do log_in_as(@user) get users_path assert_template 'users/index' assert_select 'div.pagination' User.paginate(page: 1).each do |user| #←エラー箇所 assert_select 'a[href=?]', user_path(user), text: user.name #←エラー箇所 end end end
試したこと
当該ページをブラウザ上で検証ツールを使用して確認したところ、
以下のaタグが生成されていることが分かっています。
<a href="/users/1">Example User</a> <a href="/users/2">...</a> . . .
補足情報(FW/ツールのバージョンなど)
ruby 2.6.3p62
Rails 6.0.0
以下、その他のファイル情報
Gemfile
source 'https://rubygems.org' git_source(:github) { |repo| "https://github.com/#{repo}.git" } gem 'rails', '6.0.0' gem 'bcrypt', '3.1.13' gem 'faker', '2.1.2' gem 'will_paginate', '3.1.8' gem 'bootstrap-will_paginate', '1.0.0' . . .
フィックスチャー
michael: name: Michael Example email: michael@example.com password_digest: <%= User.digest('password') %> archer: name: Sterling Archer email: duchess@example.gov password_digest: <%= User.digest('password') %> lana: name: Lana Kane email: hands@example.gov password_digest: <%= User.digest('password') %> malory: name: Malory Archer email: boss@example.gov password_digest: <%= User.digest('password') %> <% 20.times do |n| %> user_<%= n %>: name: <%= "User #{n}" %> email: <%= "user-#{n}@example.com" %> password_digest: <%= User.digest('password') %> <% end %>
ルーティング
Rails.application.routes.draw do root 'static_pages#home' get '/help', to: 'static_pages#help' get '/about', to: 'static_pages#about' get '/contact', to: 'static_pages#contact' get '/signup', to: 'users#new' resources :users get '/login', to: 'sessions#new' post '/login', to: 'sessions#create' delete '/logout', to: 'sessions#destroy' end
あなたの回答
tips
プレビュー