带有have_selector的RoR Rspec标签

时间:2011-04-09 23:30:35

标签: ruby-on-rails rspec

编辑:想出来。我应该做("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是一个字符串。我不确定为什么会这样。谢谢您的帮助。

哦,此外,这不会发生在开发设置中,仅在测试中。

1 个答案:

答案 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“等于该值。