3

srcビューの1つによってレンダリングされたタグの属性の値の一部を指定しようとしてimg、次の構文を使用したいと考えていました:

is_expected.to have_tag 'img', with: {src: /thumb_product\.png/}

式が nokogiri によって正しく解釈されているように見えるため、これは奇妙です ((?-mix:...)基準を参照) 。

expected following:
<div class='active uploaded_image'>
<img alt="Thumb product" src="/uploads/tmp/1404970363-22080-9933/thumb_product.png" />
</div>

to have at least 1 element matching "img[src='(?-mix:thumb_product\.png)']", found 0.

だから私は何かを忘れたのか、それとも単に不可能なのか疑問に思っています. 前もって感謝します

4

2 に答える 2

1

タグのテキストを正規表現で照合することを検討している人向け:

RSpecHtmlMatchers#have_tagのドキュメント ( https://www.rubydoc.info/gems/rspec-html-matchers/RSpecHtmlMatchers:have_tag ) によると、メソッドに正規表現を渡すことができますhave_tag

例:

is_expected.to have_tag 'img', /^something(.*)in\-the\-text/

また、ドキュメントでは明示されていませんが、タグの属性を正規表現と一致させることもできます。次に例を示します。

is_expected.to have_tag 'img', :with => {:class => /some\-class\-(one|two)$/}

src属性を持つ元のポスターで機能しなかった理由がわかりません。class少なくとも属性に対しては機能します。

于 2021-12-14T22:10:00.387 に答える