RSpecで統合テストを行っている中で下記のコードで画像の投稿がテストできることがわかりました。
expect(page).to have_selector("img[src$='test_image.png']")
(test_image.png
という名前で投稿した画像をテストしています。)
ですが、$=
の意味が分からなかったため、調べたことを記録しておきます。
###セレクタの部分一致について
以下のように記述をすることで特定の文言を含むセレクタを指定できる
前方一致 ・・・ E[foo^="bar"]
foo属性の値がbarで始まるE要素
後方一致 ・・・ E[foo$="bar"]
foo属性の値がbarで終わるE要素
部分一致 ・・・ E[foo*="bar"]
foo属性の値にbarを含むE要素
これをもとに冒頭で記述したコードを分解してみるとsrc属性の値がtest_image.png
で終わるimg要素
があるかどうかをテストしているということになります。