Im following the Ruby On Rails 3 tutorial by Michael Hartl and using Capybara for the integration specs. The integration specs so far are as follows
require 'spec_helper'
describe "StaticPages" do
describe "Home page" do
it "should have the h1 'Sample App'" do
visit '/static_pages/home'
page.should have_selector('h1',:text => 'Sample App')
end
it "should have the title 'Home'" do
visit '/static_pages/home'
page.should have_selector('title',:text => "Ruby on Rails Tutorial Sample App | Home")
end
end
describe "Help page" do
it "should have the h1 'Help'" do
visit '/static_pages/help'
page.should have_selector('h1',:text => 'Help')
end
it "should have the title 'Help'" do
visit '/static_pages/help'
page.should have_selector('title',:text => "Ruby on Rails Tutorial Sample App | Help")
end
end
describe "About page" do
it "should have the h1 'About Us'" do
visit '/static_pages/about'
page.should have_selector('h1',:text => 'About Us')
end
it "should have the title 'About'" do
visit '/static_pages/about'
page.should have_selector('title',:text => "Ruby on Rails Tutorial Sample App | About Us")
end
end
end
When i run these tests i get:
1) StaticPages Home page should have the title 'Home'
Failure/Error: page.should have_selector('title',:text => "Ruby on Rails Tutorial Sample App | Home")
expected #has_selector?("title") to return true, got false
# ./spec/requests/static_pages_spec.rb:12:in `block (3 levels) in <top (required)>'
2) StaticPages Help page should have the title 'Help'
Failure/Error: page.should have_selector('title',:text => "Ruby on Rails Tutorial Sample App | Help")
expected #has_selector?("title") to return true, got false
# ./spec/requests/static_pages_spec.rb:24:in `block (3 levels) in <top (required)>'
3) StaticPages About page should have the title 'About'
Failure/Error: page.should have_selector('title',:text => "Ruby on Rails Tutorial Sample App | About Us")
expected #has_selector?("title") to return true, got false
# ./spec/requests/static_pages_spec.rb:36:in `block (3 levels) in <top (required)>'
I expect the title test for help and about page to fail, but my home.html.erb is as follows
<html>
<head>
<title>Ruby on Rails Tutorial Sample App | Home</title>
</head>
<body>
<h1>Sample App</h1>
<p>
This is the homepage for the sample app
</p>
</body>
</html>
Also, i see the title 'Ruby on Rails Tutorial Sample App | Home' on '/static_pages/home'. Whats causing the title test for home to fail ?