簡體   English   中英

Ruby 1.8.7上的Rspec失敗

[英]Rspec Failures on Ruby 1.8.7

我正在使用brew install和rvm在Mac osx10.8上安裝的Ruby 1.8.7。 當我bundle exec spec spec/requests/static_pages_spec.rb出現這些錯誤

FFFFF.FFF

Failures:

  1) Static pages Home page should have the h1 'Sample App'
     Failure/Error: visit root_path
     NameError:
       undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x104b5a108>
     # ./spec/requests/static_pages_spec.rb:8

  2) Static pages Home page should have the base title
     Failure/Error: visit root_path
     NameError:
       undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x104b45258>
     # ./spec/requests/static_pages_spec.rb:13

  3) Static pages Home page should not have a custom page title
     Failure/Error: visit root_path
     NameError:
       undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x104b3ea48>
     # ./spec/requests/static_pages_spec.rb:18

  4) Static pages Help page should have the h1 'Help'
     Failure/Error: visit help_path
     ActionView::Template::Error:
       undefined method `full_title' for #<#<Class:0x106d53c50>:0x106d509b0>
     # ./app/views/layouts/application.html.erb:4:in `_app_views_layouts_application_html_erb__291545742_2204731780'
     # ./spec/requests/static_pages_spec.rb:26

  5) Static pages Help page should have the title 'Help'
     Failure/Error: visit help_path
     ActionView::Template::Error:
       undefined method `full_title' for #<#<Class:0x106d53c50>:0x106cde630>
     # ./app/views/layouts/application.html.erb:4:in `_app_views_layouts_application_html_erb__291545742_2204731780'
     # ./spec/requests/static_pages_spec.rb:31

  6) Static pages About page should have the title 'About Us'
     Failure/Error: expect(page).to have_title("Ruby on Rails Tutorial Sample App | About Us")
     NoMethodError:
       undefined method `has_title?' for #<Capybara::Session>
     # ./spec/requests/static_pages_spec.rb:45

  7) Static pages Contact page should have the content 'Contact'
     Failure/Error: visit contact_path
     ActionView::Template::Error:
       undefined method `full_title' for #<#<Class:0x106d53c50>:0x106c303c8>
     # ./app/views/layouts/application.html.erb:4:in `_app_views_layouts_application_html_erb__291545742_2204731780'
     # ./spec/requests/static_pages_spec.rb:52

  8) Static pages Contact page should have the title 'Contact'
     Failure/Error: visit contact_path
     ActionView::Template::Error:
       undefined method `full_title' for #<#<Class:0x106d53c50>:0x106c07298>
     # ./app/views/layouts/application.html.erb:4:in `_app_views_layouts_application_html_erb__291545742_2204731780'
     # ./spec/requests/static_pages_spec.rb:57

Finished in 0.41599 seconds
9 examples, 8 failures

Failed examples:

rspec ./spec/requests/static_pages_spec.rb:7 # Static pages Home page should have the h1 'Sample App'
rspec ./spec/requests/static_pages_spec.rb:12 # Static pages Home page should have the base title
rspec ./spec/requests/static_pages_spec.rb:17 # Static pages Home page should not have a custom page title
rspec ./spec/requests/static_pages_spec.rb:25 # Static pages Help page should have the h1 'Help'
rspec ./spec/requests/static_pages_spec.rb:30 # Static pages Help page should have the title 'Help'
rspec ./spec/requests/static_pages_spec.rb:43 # Static pages About page should have the title 'About Us'
rspec ./spec/requests/static_pages_spec.rb:51 # Static pages Contact page should have the content 'Contact'
rspec ./spec/requests/static_pages_spec.rb:56 # Static pages Contact page should have the title 'Contact'

有誰知道如何解決所有這些錯誤? 這是我的關聯文件:routes.rb

SampleApp::Application.routes.draw do

  match '/static_pages/home', :to =>'static_pages#home'
  match '/help' => 'static_pages#help',    :via => 'get'
  match '/about' => 'static_pages#about',   :via => 'get'
  match '/contact' => 'static_pages#contact', :via => 'get'

  get "static_pages/home"

  get "static_pages/help"

  get "static_pages/about"

  get "static_pages/contact"

static_pages_spec.rb

require 'spec_helper'

describe "Static pages" do

  describe "Home page" do

    it "should have the h1 'Sample App'" do
      visit root_path
      expect(page).to have_content('Sample App')
    end

    it "should have the base title" do
      visit root_path
      expect(page).to have_title("Ruby on Rails Tutorial Sample App")
    end

    it "should not have a custom page title" do
      visit root_path
      expect(page).not_to have_title('| Home')
    end
  end

  describe "Help page" do

    it "should have the h1 'Help'" do
      visit help_path
      expect(page).to have_content('Help')
    end

    it "should have the title 'Help'" do
      visit help_path
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | Help")
    end
  end

  describe "About page" do

    it "should have the h1 'About Us'" do
      visit about_path
      expect(page).to have_content('About Us')
    end

    it "should have the title 'About Us'" do
      visit about_path
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | About Us")
    end
  end

  describe "Contact page" do

    it "should have the content 'Contact'" do
      visit contact_path
      expect(page).to have_content('Contact')
    end

    it "should have the title 'Contact'" do
      visit contact_path
      expect(page).to have_title("Ruby on Rails Tutorial Sample App | Contact")
    end
  end
end

我已經更新了我的Xcode,libiconv和所有相關的東西。 目前,我大部分時間都在“ ruby​​ on rails”教程的第5章中學習,我一生都不知道是什么導致了這些錯誤。 到目前為止,我已經完美地遵循了本教程,除了一些小例外,例如將冒號方法更改為哈希火箭和不同的gem版本等。

耙結果:

s

tatic_pages_home     /static_pages/home(.:format)    static_pages#home
                help GET /help(.:format)                 static_pages#help
               about GET /about(.:format)                static_pages#about
             contact GET /contact(.:format)              static_pages#contact
                     GET /static_pages/home(.:format)    static_pages#home
   static_pages_help GET /static_pages/help(.:format)    static_pages#help
  static_pages_about GET /static_pages/about(.:format)   static_pages#about
static_pages_contact GET /static_pages/contact(.:format) static_pages#contact

當使用match創建路由並get類似的路由help_path ,默認情況下不會獲得諸如help_path的命名路由。 運行rake routes以查看配置了哪些路由,以及它們的命名助手(如果有)是什么。 您可能沒有太多的命名路線。

您可以使用:as來命名您的路線:

match '/help' => 'static_pages#help', :via => 'get', :as => 'help'

那將為您提供help_pathhelp_url 如果您使用諸如resources :help來定義路由,那么很多魔術就是為您完成的。 對於通往靜態資產的路線,最好使用:as

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM