質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

0回答

523閲覧

system specが通らない

Hiro-Nagai

総合スコア1

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2023/01/10 10:22

■背景
某スクールでの課題に取り組んでおります。
期限があるのですが、スクールメンターの回答が遅いのでこちらで質問させてください。

■実現したいこと
このテストコードをsystemspecとして通したい

■現状
Rspecが通したいのですが、しかし通らず。以下質問させてください。
bundle exec rspec実行で以下のエラーが起きます。

エラーメッセ
Capybara::ElementNotFound:
Unable to find link

画像の説明をここに入力

■実際に試したこと
エラーメッセージで検索をかけ、
以下を参考にリンクにidをつけてみましたが、失敗(加えて今まで通っていたテストが通らなくなり悪化)
https://www.halu.dev/entry/2015/11/17/210904

画像の説明をここに入力
画像の説明をここに入力

■その他参考画像
spec_helper
画像の説明をここに入力
rails_helper
画像の説明をここに入力

■コード
HTMLのコード

<% provide(:title, @product.name) %> <div class="main-wrapper"> <section class="lightSection clearfix pageHeader"> <div class="container"> <div class="row"> <div class="col-xs-6"> <div class="page-title"> <h2><%= @product.name %></h2> </div> </div> <div class="col-xs-6"> <ol class="breadcrumb pull-right"> <li><%= link_to 'Home', potepan_path %></li> <li class="active"><%= @product.name %></li> </ol> </div> </div> </div> </section> <section class="mainContent clearfix"> <div class="container"> <div class="row singleProduct"> <div class="col-xs-12"> <div class="media"> <div class="media-left productSlider"> <div id="carousel" class="carousel slide" data-ride="carousel"> <div class="carousel-inner"> <% @product.images.each_with_index do |image, i| %> <div class="item <%= "active" if i.zero? %>"> <%= image_tag(image.attachment(:large)) %> </div> <% end %> </div> </div> <div class="clearfix"> <div id="thumbcarousel" class="carousel slide" data-interval="false"> <div class="carousel-inner"> <% @product.images.each_with_index do |image, i| %> <div data-target="#carousel" data-slide-to="<%= i %>" class="thumb"> <%= image_tag(image.attachment(:small)) %> </div> <% end %> </div> <a class="left carousel-control" href="#thumbcarousel" role="button" data-slide="prev"> <span class="glyphicon glyphicon-chevron-left"></span> </a> <a class="right carousel-control" href="#thumbcarousel" role="button" data-slide="next"> <span class="glyphicon glyphicon-chevron-right"></span> </a> </div> </div> </div> <div class="media-body"> <ul class="list-inline"> <li> <%= link_to potepan_category_path(@product.taxons.first.id) do%> <i class="fa fa-reply" aria-hidden="true"></i>一覧ページへ戻る <% end %> </li> </ul> <h2><%= @product.name %></h2> <h3><%= @product.display_price %></h3> <p><%= @product.description %></p> <span class="quick-drop"> <select name="guiest_id3" id="guiest_id3" class="select-drop"> <option value="0">S</option> <option value="1">M</option> <option value="2">L</option> <option value="3">XL</option> </select> </span> <span class="quick-drop resizeWidth"> <select name="guiest_id4" id="guiest_id4" class="select-drop"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> </select> </span> <div class="btn-area"> <a href="cart_page.html" class="btn btn-primary btn-block">カートへ入れる<i class="fa fa-angle-right" aria-hidden="true"></i></a> </div> </div> </div> </div> </div>

rspecのコード

require 'rails_helper' RSpec.describe "Products", type: :system do include Rails.application.routes.url_helpers describe "GET #show" do let(:image) { create(:image) } let(:product) { create(:product, taxons: [taxon]) } let(:taxonomy) { create(:taxonomy) } let(:taxon) { create(:taxon, taxonomy: taxonomy) } before do product.images << image get potepan_product_path(product.id) # 画像URL取得が上手くいかない問題への対応 # https://mng-camp.potepan.com/curriculums/document-for-final-task-2#notes-of-image-test ActiveStorage::Current.host = request.base_url end it "一覧ページに戻るをクリックすると商品カテゴリページへアクセスされていること" do click_link('my_id') expect(current_path).to eq potepan_category_path(taxons.id) end it "ページが表示されていること" do expect(response).to have_http_status(:success) end it "商品の名前が表示されていること" do expect(response.body).to include product.name end it "商品の価格が表示されていること" do expect(response.body).to include product.display_price.to_s end it "商品の説明が表示されていること" do expect(response.body).to include product.description end end end

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuma.inaura

2023/01/10 11:24

my_id っていう文字のリンクは画面にありますか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問