Testen mit Spezifikationen, Capybara aus Kapitel 3 des RailStutorial funktioniert nicht (have_selector ('title',: text => '| Home')

Ich arbeite an ruby.railstutorial.org/ruby-on-rails-tutorial-book. Ich benutze Rails 3.2.7, Spork, Rspec, Capybara, Launchy und einige Wachen :)

Ich habe ein wirklich seltsames Problem in Kapitel 3 beim Testen:

Es sieht so aus, als würden die Tests nicht für das funktionieren, was sich in der befindet<head>-Etikett. Wenn ich das lege<title>-Tag in der<body>-tag anstelle des Head-Tags funktioniert gut. Auch es funktioniert, wenn ich stelle<h1>-Tags über dem<title> Innerhalb<head>-Stichworte. Es ist komisch, nicht wahr?

Bitte hilf mir herauszufinden.

Das Beispiel stammt von: ruby.railstutorial.org/chapters/static-pages#code:title_test:

it "should have the right title" do
  visit '/static_pages/home'
  page.should have_selector('title',
                    :text => "Ruby on Rails Tutorial Sample App | Home")
end

Die Fehlermeldung lautet:

Ausfälle:

1) Statische Seiten Homepage sollte den Titel 'Homepage' haben Fehler / Fehler: page.should have_selector ('title',: text => '| Homepage') Capybara :: ExpectationNotMet: Es wird erwartet, dass CSS "title" with text "gefunden wird | Home ", aber es gab keine Übereinstimmungen. Es wurde auch "" gefunden, die dem Selektor entsprachen, aber nicht alle Filter. # ./spec/requests/static_pages_spec.rb:15:in `Block (3 Ebenen) in '

Dieser arbeitet:

it "should have the h1 'Sample App'" do
  visit '/static_pages/home'
  page.should have_selector('h1', :text => 'Sample App')
end

die gerenderte HTML-Datei:

<!DOCTYPE html>
<html>
<head>
  <title>Ruby on Rails Tutorial Sample App | Home</title>
  <!-- some css,js stuff -->
</head>
<body>

<h1>Sample App</h1>
<p>
  This is the home page for the
  <a href="http://railstutorial.org/">Ruby on Rails Tutorial</a>
  sample application
</p>

</body>
</html>

Vielen Dank

Bearbeiten: Sie können die Dateien finden, mit denen ich auf Github arbeite:https://github.com/farukg/sample_app/

der link zur spec datei:https://github.com/farukg/sample_app/blob/master/spec/requests/static_pages_spec.rb

Erklärung, was ich getan habe: Der Code für die Homepage ist so, wie er sein sollte. Der Code für die About-Seite hat ein eigenes Layout mit einem h1-Tag über dem Title-Tag, um zu zeigen, dass er aus irgendeinem Grund funktioniert. Und schließlich hat die Hilfeseite ihren Titel-Tag innerhalb der Body-Tags, was auch funktioniert.

Ich bin absolut verwirrt, warum habe ich so ein seltsames Verhalten?

die komplette Ausgabe von Wache:

> Run all
Bundle already up-to-date
Running all specs
Running tests with args ["--drb", "--colour", "-f", "progress", "-r", "/home/faruk/.rvm/gems/ruby-1.9.3-p125/gems/guard-rspec-1.2.0/lib/guard/rspec/formatters/notification_rspec.rb", "-f", "Guard::RSpec::Formatter::NotificationRSpec", "--out", "/dev/null", "--failure-exit-code", "2", "spec"]...
..FFF.....Neues Fenster in aktueller Browsersitzung erstellt.
.FF..

Failures:

  1) Static pages Home page having application layout should have_selector head title 'Home'
     Failure/Error: page.should have_selector('head title',
     Capybara::ExpectationNotMet:
       expected to find css "head title" with text "Ruby on Rails Tutorial Sample App | Home" but there were no matches. Also found "", which matched the selector but not all filters.
     # ./spec/requests/static_pages_spec.rb:23:in `block (3 levels) in <top (required)>'

  2) Static pages Home page having application layout should have content 'Home'
     Failure/Error: page.should have_content("Ruby on Rails Tutorial Sample App | Home")
       expected there to be text "Ruby on Rails Tutorial Sample App | Home" in "Sample App This is the home page for the Ruby on Rails Tutorial sample application"
     # ./spec/requests/static_pages_spec.rb:30:in `block (3 levels) in <top (required)>'

  3) Static pages Home page having application layout should have css title 'Home'
     Failure/Error: page.should have_css("title", :text => "Ruby on Rails Tutorial Sample App | Home")
     Capybara::ExpectationNotMet:
       expected to find css "title" with text "Ruby on Rails Tutorial Sample App | Home" but there were no matches. Also found "", which matched the selector but not all filters.
     # ./spec/requests/static_pages_spec.rb:36:in `block (3 levels) in <top (required)>'

  4) Static pages about page with own layout should JUST have_selector head title 
     Failure/Error: page.should have_selector('head title')
     Capybara::ExpectationNotMet:
       expected to find css "head title" but there were no matches
     # ./spec/requests/static_pages_spec.rb:86:in `block (3 levels) in <top (required)>'

  5) Static pages about page with own layout should have_selector head title 'About Us'
     Failure/Error: page.should have_selector('head title',
     Capybara::ExpectationNotMet:
       expected to find css "head title" with text "Ruby on Rails Tutorial Sample App | About Us" but there were no matches
     # ./spec/requests/static_pages_spec.rb:93:in `block (3 levels) in <top (required)>'

Finished in 0.66215 seconds
15 examples, 5 failures

Failed examples:

rspec ./spec/requests/static_pages_spec.rb:20 # Static pages Home page having application layout should have_selector head title 'Home'
rspec ./spec/requests/static_pages_spec.rb:27 # Static pages Home page having application layout should have content 'Home'
rspec ./spec/requests/static_pages_spec.rb:33 # Static pages Home page having application layout should have css title 'Home'
rspec ./spec/requests/static_pages_spec.rb:83 # Static pages about page with own layout should JUST have_selector head title 
rspec ./spec/requests/static_pages_spec.rb:90 # Static pages about page with own layout should have_selector head title 'About Us'
Done.

> Neues Fenster in aktueller Browsersitzung erstellt.
Neues Fenster in aktueller Browsersitzung erstellt.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage