🔖

(自分用メモ)最終課題3 ECサイト spec テスト内容をresponse.bodyからpageに変更するとエラー

2023/01/22に公開

■現状

表題の件、最終課題3にて、system sepcを書いております。

メンター様に以下ご指摘いただき、対応しております。

しかしながら

以下、テスト内容をresponse.bodyからpageに変更し

bundle exec rspec実行で以下のエラーが起きます。

エラー文

NameError:

undefined local variable or method `page' for

pageは定義されていない変数かメソッド。

■実際に試したこと

①過去質問事例を検索しましたが、皆さんキャプチャでpage使っておられますが、当方と同じ症状の方は見受けられませんでした。

②undefined local variable or method `page' for #<RSpecでググりましたが、

解き方の方向性がバラバラで、釈然とせず、よくわからない状態です。

ググって上から出るリンク

https://stackoverflow.com/questions/29448012/rspec-and-capybara-undefined-local-variable-or-method-page

https://qiita.com/KKDDD/items/382d1d6413883d7e6e43

https://k-koh.hatenablog.com/entry/2020/09/23/120107

https://loumo.jp/archives/9370

③前回当方が同じような症状で投稿したため

capypara.自身が機能してないのでは?と思いGEMとrails_helper部分確認しましたが、特に問題はありませんでした。

https://mng-camp.potepan.com/questions/2fa19978-9b71-435a-ab70-98292e68daeb

■質問

皆さんが詰まってないところで、自分が詰まっているので、何か根本的におかしいような気がしております。

エラー解消の方向性をご教授いただきたければ幸いです

■git(PRレビュー)

https://github.com/potepancamp/Hiro-Nagai/pull/6

回答
ユーザー画像
Shioji(メンター)

2023/1/12 08:46

system.specを書いているということですが 3行目にtype: request としているからではないでしょうか?

また、response.bodyとpageを同じテストファイルに書いておられるようですが指摘通り、

response.bodyを見ている箇所はrequest spec、pageを見ている箇所はsystem specで記載を分けるようにしましょう。

よろしくお願いいたします。

ユーザー画像
長井宏樹

2023/1/12 17:46

Shioji様

ご回答ありがとうございます。

ご指摘いただいた通り、3行目にtype: systemに変更いたしました。(ケアレスミスでした申し訳ありません)

改めてtype: systemに変更した上で以下のエラーが出ました。

1、pageでの記載エラー

bundle exec rspec実行で以下のエラーが起きます。

※キャプチャ1参照

エラーメッセ

「expected #Capybara::Session to include "Brand", but it does not respond to include?`」

訳:は#Capybara::Sessionに "Brand "をインクルードすることを期待しました。が、includeに反応しない?

2、写真のエラー

上記に加え写真エラーが出ております

エラーメッセ

「 Capybara::ElementNotFound:」

■実際に試したこと

・capybaraのgemが入っているか確認し、spec/rails_helper.rbにも”require 'capybara/rspec'”が記載されていることを確認

・各4つのテスト3行目が傘下の記載になっているか確認(system傘下ならファイル3行目はsystem)

その上で以下実施。

1について、

includeをfindなど他のメソッドに変更。

https://qiita.com/morrr/items/0e24251c049180218db4

2について、

・withinでスコープを(imageBox)に変更も同じく” Capybara::ElementNotFound: Unable to find css ”の結果

・requests/categories_spec.rbに転記(上記letも)もテスト通らず

■質問

エラーメッセに従って検索しても、核心的な解き方を得ず、何か根本的におかしいような気がしております。

エラー解消の方向性をご教授いただきたければ幸いです

Discussion