我如何最好地测试页面结构完整性的完整性?
作为一个例子,我想确保网站菜单包含所有必需的元素。它使用常规的CSS格式构建,并具有以下元素:
<li><%= link_to "Some page", some_path %></li>
...
<li><%= link_to "Login", path_to_login_action %></li>
<li><%= link_to "Register", path_to_registration_action %></li>
或者这在某种程度上毫无意义? (仍然试图对测试风格有一个良好的理解)
答案 0 :(得分:0)
您可以使用assert_select方法:
describe "home page" do
it "diplays all menu elements" do
get "/home"
assert_select "ul.menu li" do
assert_select "a.first", "Some page"
assert_select "a.another-class", "Login"
assert_select "a.last", "Register"
end
end
end
在另一种情况下,在您的Gemfile中包含webrat或capybara:
gem 'capybara'
gem 'webrat'
并使用have_selector方法:
describe "home page" do
it "diplays all menu elements" do
visit "/home"
within "ul.menu li" do
page.should have_selector("a.first", :text => "Some page")
page.should have_selector("a.another-class", :text => "Login")
page.should have_selector("a.last", :text => "Register")
end
end
end
详细了解Rspec-rails:http://github.com/rspec/rspec-rails#readme(参见“请求规范”一章)