経緯
洋服投稿のオリジナルアプリの編集機能の結合テストを作成中、ActiveHashを用いた選択肢のテスト方法につまづいたため備忘録として記載します。
編集前(誤った記述方法)
基本的な記述方法は通常のフォーム内容と同様で、findに要素を指定し、eqに選択肢のIDを取得するよう記述した。
expect(
find('要素').value
).to eq (選択肢のid)
expect(
find('#garment_genre_id').value
).to eq (@garment1.genre_id)
内容的に、expected: 2, got: "2"
と数値の2を期待したところ文字列としての"2"を取得してしまっているため、不一致となってしまっていると考えられる。
編集後
上記の異なったIDを一致させるためにeq下の記述を式展開を用いつつ、文字列として期待できるように記述する。
expect(
find('#garment_genre_id').value
).to eq "#{@garment1.genre_id}"
これで問題なくテストは成功しました。