前提条件
以下がユーザーのアバター画像を表示させるヘルパーメソッドである
application_helper.rb画像を表示させるヘルパーメソッド
def display_avatar_for(user, size: Settings.avatar_size[:in_feed])
resize = "#{size}x#{size}^"
crop = "#{size}x#{size}+0+0"
avatar = user.avatar
image_tag(avatar.variant(gravity: :center, resize: resize, crop: crop).processed, alt: "#{user.username}", class: "avatar")
end
実際に生成されるHTMLのimgタグ
<img alt="Test_User" class="avatar" src="http://localhost:3000/rails/active_storage/representations/redirect/ey..44/ava0.jpg">
これに基づき、imgタグのalt属性をチェックすることで、意図した内容が表示されているか確認する。
結論(alt属性
spec/system/**_spec.rb
let(:user) { create(:user) }
:
expect(page).to have_selector "img[alt='#{user.username}']"
以上で確認が可能である。
その他(src属性
また、src属性を確認する場合は、以下のように記述できる。
spec/system/**_spec.rb
let(:filename) { "ava0.jpg" }
:
expect(page).to have_selector "img[src$='#{filename}']"
src$=~~
の$
により、~~が含まれるかどうか、を確認してくれる。(曖昧検索のように…)
よって上で生成されたimgタグでも反応してくれる様になる、という話でした。
以上です!記事に目を通してくださりありがとうございました!!!