0
0

More than 1 year has passed since last update.

Rspecでの配列でのエラーが出た

Last updated at Posted at 2023-07-05

Rspec今日学んだこと

今日はゆっくりコードを書いていたんだが、

投稿を表示させるspecを書いていた。

・boardには対応するtag_listがある(tagは配列で保管される)
・ページごとに取得するtag_listを決めている(boards_path(tag_name: 'park'))
・投稿一覧ページにとんだ際指定したtag_listの投稿が取得できているかの確認(ただし今回の記事ではパス)

が成功すればOK。

RSpec.describe "投稿の表示", type: :system do
  before do
    @user = FactoryBot.create(:user)
  end
#パークエリア情報の投稿を取得
it 'パークエリアの投稿を取得できること' do
  @board = FactoryBot.create(:board,tag_list:'park')

  visit boards_path(tag_name: 'park')
  expect(page).to have_current_path(boards_path(tag_name: 'park'))
end

これで成功。と思ったんだが、

これ本当に指定したtag_listの投稿が取得できているかわからへんやん。

とのことで

どのようにコードを書こうか悩み出す。

そこでchatgptに聞いた結果

expect(@board.tag_list).to eq('park')

となるコードが提案される。

お、いいのあるやん。

そう思いコードを追加しテストを回すと

     Failure/Error: expect(@board.tag_list).to eq('park')
     
       expected: "park"
            got: ["park"]
     
       (compared using ==)

おい、配列やぞ。

と怒られました。eqでは配列は取得できないらしい。

includeに変更したら通りました。

まだまだ勉強することだらけだね

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0