3

试图在我的一个视图呈现src的标记中指定属性的一部分值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

2

手动测试该src字符串以文件的预期名称结尾:

is_expected.to have_tag 'img[src$="thumb_product.png"]'
于 2014-07-13T01:01:09.343 回答
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 回答