2012-09-19 9 views
5

閲覧中のページに応じて、自分のロゴに別のイメージを使用したいと思っています。ホームページのロゴが大きくなります。私は動作をテストするために、要求仕様を使って好きなので、私はこのような何かやりたい:rspecを使って表示されている画像をテストするには?

<div class='logo-wrapper'> 
    <h1> 
    <a href="/"><img alt="Logo-big" src="/assets/logo-small.png" /> 
    <br> 
    <span>UpMarket</span> 
    </a> 
    </h1> 
</div> 

しかし、このセレクタは動作しません。

describe 'Visit "advertentie/1"' do 
    it 'contains add details' do 
     add = create(:add_with_photos) 
     visit add_path add 
     page.should have_selector('img[alt="logo-small"]') # CHECK IMAGE ALT 
     page.should have_content(add.name) 
    end 
end 

をし、テストを実行すると、一部のHAMLがHTMLを生成agains 。これは可能なのでしょうか?

+0

何の関連するHTMLがどのように見えるん(そのSRC属性値がストリング "W3Schoolsのを" 含むすべての<img>要素を選択しますか)? – jdl

+1

100%TDDの場合、HTMLは当然のようには見えないはずですが、私は悪い方法でそれを私の質問に追加します; –

+1

TDDは出力がゼロであることを意味します。 'have_selector'がチェックしている(またはあるべきである)いくつかのHTMLがはっきりとあります。それが私が求めていたものです。 – jdl

答えて

15

have_cssメソッドを試しましたか?

have_css("img[src*='w3schools']") 

+0

グリーン仕様。愛してください。ありがとう、srcはより信頼性の高い属性のように見えます。なぜなら、私はaltsを少しわかりやすいものにしたいからです。 '*'を使ってもっと多くの状況でこれを使うことができました。本当にそれを使ったことはありません。 –

+0

これは私にとってはうまくいくが、 '*'は何をするのだろうか?私はそれが "スプラット"として使用されていることがわかりますが、これは異なるようです。ありがとう。 – haley

+0

'* ='属性セレクタは '属性が部分文字列を含んでいる'ことを意味します。可能なセレクタの概要については、[w3schools](http://www.w3schools.com/cssref/css_selectors.asp)を参照してください。 – hjblok

関連する問題