Ruby on Rails教程第5章失败/错误它{should have_selector

时间:2013-07-07 22:27:46

标签: ruby-on-rails ruby testing rspec

我正在研究Ruby on Rails教程(第5章),我收到了一个错误。我的代码是....

https://github.com/Hjack/sample_app_new

我收到以下错误...

hakimus-MacBook-Air:sample_app_new hakimujackson$ bundle exec rspec spec/requests/static_pages_spec.rb
Rack::File headers parameter replaces cache_control after Rack 1.5.
...FFFFFF

Failures:

  1) Help page
     Failure/Error: it { should have_selector('h1',   text: 'Help')}
       expected css "h1" with text "Help" to return something
     # ./spec/requests/static_pages_spec.rb:20:in `block (2 levels) in <top (required)>'

  2) Help page
     Failure/Error: it { should have_selector('title', text: full_title('Help'))}
       expected css "title" with text "Ruby on Rails Tutorial Sample App | Help" to return something
     # ./spec/requests/static_pages_spec.rb:21:in `block (2 levels) in <top (required)>'

  3) About page
     Failure/Error: it { should have_selector('h1',  text: 'About')}
       expected css "h1" with text "About" to return something
     # ./spec/requests/static_pages_spec.rb:28:in `block (2 levels) in <top (required)>'

  4) About page
     Failure/Error: it { should have_selector('title', text: full_title('About Us'))}
       expected css "title" with text "Ruby on Rails Tutorial Sample App | About Us" to return something
     # ./spec/requests/static_pages_spec.rb:29:in `block (2 levels) in <top (required)>'

  5) Contact page
     Failure/Error: it { should have_selector('h1',   text: 'Contact')}
       expected css "h1" with text "Contact" to return something
     # ./spec/requests/static_pages_spec.rb:36:in `block (2 levels) in <top (required)>'

  6) Contact page
     Failure/Error: it { should have_selector('title',  text: full_title('Contact'))}
       expected css "title" with text "Ruby on Rails Tutorial Sample App | Contact" to return something
     # ./spec/requests/static_pages_spec.rb:37:in `block (2 levels) in <top (required)>'

Finished in 0.21916 seconds
9 examples, 6 failures

Failed examples:

rspec ./spec/requests/static_pages_spec.rb:20 # Help page
rspec ./spec/requests/static_pages_spec.rb:21 # Help page
rspec ./spec/requests/static_pages_spec.rb:28 # About page
rspec ./spec/requests/static_pages_spec.rb:29 # About page
rspec ./spec/requests/static_pages_spec.rb:36 # Contact page
rspec ./spec/requests/static_pages_spec.rb:37 # Contact page

这是我的spec.rb文件......

require 'spec_helper'

describe "StaticPages" do

    subject { page }

  describe "Home page" do

    before { visit root_path }

    it { should have_selector('h1',  text: 'Sample App')}
    it { should have_selector('title', text: full_title(''))}
    it { should_not have_selector 'title', text: '| Home'}
    end
  end

  describe "Help page" do
    before { visit help_path }

    it { should have_selector('h1',   text: 'Help')}
    it { should have_selector('title', text: full_title('Help'))}
    end


  describe "About page" do
    before { visit about_path }

    it { should have_selector('h1',  text: 'About')}
    it { should have_selector('title', text: full_title('About Us'))}
    end


  describe "Contact page" do
    before { visit contact_path}

    it { should have_selector('h1',   text: 'Contact')}
    it { should have_selector('title',  text: full_title('Contact'))}
    end

我不确定我做错了什么。我很感激任何帮助。

感谢!!!

1 个答案:

答案 0 :(得分:2)

问题出在你的spec文件中 -

describe "StaticPages" do

subject { page }

  describe "Home page" do

    before { visit root_path }

    it { should have_selector('h1',  text: 'Sample App')}
    it { should have_selector('title', text: full_title(''))}
    it { should_not have_selector 'title', text: '| Home'}
  end
end

您过早地结束了rspec上下文 - 将最后一个'end'移动到规范的底部,测试应该全部通过。

喝彩!