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

Test for consecutive HTML elements in Rails view

我希望 运行 进行测试*以检查是否存在类似这样的东西:

<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 的文档中了解如何解决这个问题。

谢谢

丹尼尔

我最终对 css_select 的结果使用了正则表达式,这看起来有点不雅,但对我的目的有用。如果有更好的方法,我很想听听。我使用了这样的东西:

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