在Rails视图中测试连续的HTML元素



我想运行一个测试*来检查是否存在这样的东西:

<tr>
<td> name </td> <td> date </td>
</tr>

代码,如以下所示:

assert_select "tr" do
assert_select "td",  name
assert_select "td",  date
end

看起来似乎合理,但并不正确,因为下面的例子(这不是所需的匹配(也会通过:

<tr>
<td> name </td>
</tr>
<tr>
<td> date </td>
</tr>

我很难从assert_select的文档中看出应该如何处理这一问题。

谢谢

Daniel

  • 在默认的Rails集成测试中(我相信这意味着MiniTest(

我最终在css_select的结果上使用了regexs,这看起来有点不雅,但对我的目的有效。如果有更好的方法,我会感兴趣听它。我用了这样的东西:

pars = css_select "tr"
regexs = /<td>#{name}</td>.*<td>#{date}</td>/m
match = false
pars.each { |i| if i.to_s =~ regexs then match = true end}
assert match  

最新更新