("span.age", :content => ...)
运行此rspec测试时出现以下错误
response.should have_selector("span.age", :age => work1.age.to_s):
Failure/Error: response.should have_selector("span.age", :age => work1.age.to_s)
expected following output to contain a
<span.age age='15'/> tag
输出
....
<td class="work">
<span class="age">15</span><br><span class="content">B.1</span>
</td>
使用
在span.content标记上运行相同的测试response.should have_selector("span.content", :content => work1.content)
不会产生任何错误。但是,如果我故意在该标签中出错,我会得到相同的输出但是期望不同:
<span.content>B.1</span.content>
内容和年龄之间唯一不同的是age是一个整数,content是一个字符串。我不确定为什么会这样。谢谢您的帮助。
哦,此外,这不会发生在开发设置中,仅在测试中。
答案 0 :(得分:2)
我相信,答案在于你第二次选择符号“:content”。要更正原始测试,请将其更改为 response.should have_selector(“span.age”,:content =&gt; work1.age.to_s)
这是因为键“:content”指的是“span”元素的内容,所以你要说:“响应应该有一个”span.age“选择器,其内容等于评估表达式的结果” work1.age.to_s“。您的原始测试正在查找”span.age“元素,其属性”age“等于该值。