Ruby on rails 3 我可以检查我的HTML代码段只有一个顶级节点吗?
我正在测试一个helper方法,并将它生成的HTML片段转换为一个Capybara节点(使用Ruby on rails 3 我可以检查我的HTML代码段只有一个顶级节点吗?,ruby-on-rails-3,rspec,capybara,Ruby On Rails 3,Rspec,Capybara,我正在测试一个helper方法,并将它生成的HTML片段转换为一个Capybara节点(使用node=Capybara::node::Simple.new(HTML)) 我可以检查HTML是否只包含我期望的顶级节点吗?也就是说,如果我期望我的HTML的格式为: <div class="foo"> <div class="part-a">A</div> <div class="part-b">B</div> </div>
node=Capybara::node::Simple.new(HTML)
)
我可以检查HTML是否只包含我期望的顶级节点吗?也就是说,如果我期望我的HTML的格式为:
<div class="foo">
<div class="part-a">A</div>
<div class="part-b">B</div>
</div>
A
B
…我如何验证是否存在顶级节点(即
div.foo
),以及该节点是否没有兄弟节点?经过一点修改,我解决了这个问题。Capybara::node::Simple.new()
将代码段包装成简单的
对。这意味着以下工作:
# Check that the body has only one direct child
expect(node).to have_css('body > *', count: 1)
# Check that the expected node exists (and hang on to it for subsequent testing)
foo = node.first('body > div.foo')
expect(foo).not_to be_nil