在 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 的文档中了解如何解决这个问题。
谢谢
丹尼尔
- 在默认的 Rails 集成测试中(我相信这意味着 MiniTest)
我最终对 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
我希望 运行 进行测试*以检查是否存在类似这样的东西:
<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 的文档中了解如何解决这个问题。
谢谢
丹尼尔
- 在默认的 Rails 集成测试中(我相信这意味着 MiniTest)
我最终对 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