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に変更したら通りました。
まだまだ勉強することだらけだね