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

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

新規登録して質問してみよう
ただいま回答率
85.46%
RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

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

Q&A

解決済

1回答

2255閲覧

rspec expectとgotでidのずれが生じテストが通らない

Engineer_traine

総合スコア17

RSpec

RSpecはRuby用のBDD(behaviour-driven development)フレームワークです。

Ruby on Rails

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

0グッド

0クリップ

投稿2021/10/05 07:23

前提・実現したいこと

現在rspecを使用し、systemのテストを作成しているところなのですが一点解決できない
箇所がありますのでわかる方いましたらよろしくお願い致します。
具体的な内容に関してですが、テストで予測と結果として得られる値でidに差があるというものを
解決できません。

発生している問題・エラーメッセージ

Failure/Error: expect(current_path).to eq cafe_path(cafe.id) expected: "/caves/70" got: "/caves/69" (compared using ==)

該当のソースコード

require 'rails_helper' RSpec.describe Cafe, type: :system do let(:user) { create(:user) } let(:cafe) { create(:cafe) } describe 'Cafe CRUD' do describe 'カフェ新規登録' do context 'フォームの入力値が正常' do before { login(user) } it 'カフェの新規作成が成功' do visit new_cafe_path attach_file "cafe[image]", "#{Rails.root}/spec/factories/images/test.jpg" fill_in 'cafe[name]', with: 'testcafe' fill_in 'cafe[address]', with: '東京都渋谷区' fill_in 'cafe[number_seats]', with: 10 click_button 'commit' expect(current_path).to eq cafe_path(cafe.id) expect(page).to have_content '登録しました' end end end end end

試したこと

letの箇所をlet!に変更し実行してみましたが変化ありませんでした。
なにか修正点ありますでしょうか?

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

テストで予測と結果として得られる値でidに差があるというものを

解決できません。

はい、このテストでは一致しないという結論が得られてしかるべき(テストコードが間違っている)です。

new_cafe_pathからデータを新規作成する以上、先に保存されているcafeid一致しては逆にまずいです。

投稿2021/10/05 08:29

maisumakun

総合スコア145208

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

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

Engineer_traine

2021/10/05 11:37

そういうことだったんですね。 ご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問