编辑:明白了。我应该写("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>
在跨度上运行相同的测试。
内容标签response.should have_selector("span.content", :content => work1.content)
不会产生错误。但是,如果我故意在该标记中出错,则会得到相同的输出,但期望不同:
<span.content>B.1</span.content>
content和age之间唯一的区别是age是一个整数而content是一个字符串。我不确定为什么会发生这种情况。谢谢你的帮助。
哦,同样,这不会发生在开发设置,只有在测试。
我相信答案就在于你在第二次尝试时选择的符号":content"。要更正原始测试,请将其更改为响应。应该have_selector("跨越。",:content => work1.age.to_s)
这是因为键":content"指的是"span"元素的内容,所以你是在说:"响应应该有一个"span"。Age"选择器,其内容等于表达式"work1.age.to_s"的求值结果。你最初的测试是寻找一个"跨度"。