1

I got an error while testing code from RoR tutorial, pls help with these issue, listing is below. May be wrong version of spec in Gemfile.

Failures:

  1) PagesController GET 'home' should have the right title
     Failure/Error: response.should have_selector("title", :content => "Home")
     NoMethodError:
       undefined method `has_selector?' for #<ActionController::TestResponse:0x007fb3d4d2d108>
     # ./spec/controllers/pages_controller_spec.rb:14:in `block (3 levels) in <top (required)>'

  2) PagesController GET 'contact' should have the right title
     Failure/Error: response.should have_selector("title", :content => "Contact")
     NoMethodError:
       undefined method `has_selector?' for #<ActionController::TestResponse:0x007fb3d280b370>
     # ./spec/controllers/pages_controller_spec.rb:26:in `block (3 levels) in <top (required)>'

  3) PagesController GET 'about' should have the right title
     Failure/Error: response.should have_selector("title", :content => "About")
     NoMethodError:
       undefined method `has_selector?' for #<ActionController::TestResponse:0x007fb3d2b96e90>
     # ./spec/controllers/pages_controller_spec.rb:38:in `block (3 levels) in <top (required)>'

  4) PagesController GET 'help' should have the right title
     Failure/Error: response.should have_selector("title", :content => "Help")
     NoMethodError:
       undefined method `has_selector?' for #<ActionController::TestResponse:0x007fb3d28a19d8>
     # ./spec/controllers/pages_controller_spec.rb:50:in `block (3 levels) in <top (required)>'

Finished in 0.1005 seconds
8 examples, 4 failures

Failed examples:

rspec ./spec/controllers/pages_controller_spec.rb:12 # PagesController GET 'home' should have the right title
rspec ./spec/controllers/pages_controller_spec.rb:24 # PagesController GET 'contact' should have the right title
rspec ./spec/controllers/pages_controller_spec.rb:36 # PagesController GET 'about' should have the right title
rspec ./spec/controllers/pages_controller_spec.rb:48 # PagesController GET 'help' should have the right title

Gemfile:

source 'https://rubygems.org'

gem 'rails', '3.2.3'

gem 'sqlite3'

group :assets do
  gem 'sass-rails',   '~> 3.2.3'
  gem 'coffee-rails', '~> 3.2.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

group :test, :development do
  gem "rspec-rails", "~> 2.10.1"
end

pages_controller_spec.rb listing:

require 'spec_helper'

describe PagesController do
  render_views

  describe "GET 'home'" do
    it "should be successful" do
      get 'home'
      response.should be_success
    end

    it "should have the right title" do
      get 'home'
      response.should have_selector("title", :content => "Home")
    end
  end

  describe "GET 'contact'" do
    it "should be successful" do
      get 'contact'
      response.should be_success
    end

    it "should have the right title" do
      get 'contact'
      response.should have_selector("title", :content => "Contact")
    end
  end

  describe "GET 'about'" do
    it "should be successful" do
      get 'about'
      response.should be_success
    end

    it "should have the right title" do
      get 'about'
      response.should have_selector("title", :content => "About")
    end
  end

  describe "GET 'help'" do
    it "should be successful" do
      get 'help'
      response.should be_success
    end

    it "should have the right title" do
      get 'help'
      response.should have_selector("title", :content => "Help")
    end
  end
end

I do not understang what is wrong.

1

2 Answers 2

1

If you don't want to use webrat, you can use

response.body.should include 'Contact</h1>'

Rather than

response.should have_selector("title", :content => "Contact")

Which is a bit less clean, I agree.

Sign up to request clarification or add additional context in comments.

Comments

0

Re-edit your GEMFILE and type

gem 'webrat'

and then

type

bundle install

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.