2011-12-11 40 views
5

我想在我的测试套件中有测试正确swapping of a stylesheet的能力。通过这篇关于testing the page title using Capybara的文章,我想我可以测试页面的head部分中的任何link标签。但似乎我错了。水豚:如何测试页面的样式表?

有了这样的步骤:

save_and_open_page 
page.should have_xpath("//link") # just something as simple as this, first. 

save_and_open_page产生这样的HTML(有一些东西为简洁,删除):

<head> 
    ... 
    <link href="/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css?1323572998" type="text/css" class="jquery-styler" rel="stylesheet"> 
    ... 
</head> 

但我得到这个故障:

expected xpath "//link" to return something (RSpec::Expectations::ExpectationNotMetError) 

鉴于此,如何测试样式表

谢谢!

回答

3

如果你想检查一个CSS文件存在一个页面上,那么你就可以做到以下几点:

page.should have_xpath("//link[contains(@href, 'style.css')]") 

这会检查是否有任何的href属性包含style.css任何<link>元素。关于“期望xpath返回某些内容”的错误意味着您提供的XPath实际上并不存在 - 为什么它认为我不确定,因为您提供的HTML中有完全有效的<link>标记。

1

当我检查的CSS我做什么是一样的东西

expect(page.body).to include('/home/ramon/source/unstilted/public/system_test/stylesheets/fancake/css/2.css')