[問題] 設定具名路由, RSpec 測試不過

看板Ruby作者 (波賽耶)時間10年前 (2014/08/03 01:05), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串1/1
正在用 Micheal Hartl 寫的 Ruby on Rails Tutorial 做練習。 環境:Ruby 2.1.0 / Rails 4.1.1 / Linux(Debian) ------------------------------------------------ 原本測試都過得了,但在定義具名路由的時候遇到問題。 在config/routes.rb 將 get 'static_pages/help' 修改成 match '/help', to: 'static_pages#help', via: 'get' 之後,測試都錯誤。 ------------------------------------------------- 【RSpec錯誤訊息】 FFFFFFFFF Failures: 1) StaticPages 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:0x0000000424f5a0> # ./static_pages_spec.rb:18:in `block (3 levels) in <top (required)>' 2) StaticPages 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:0x000000042459b0> # ./static_pages_spec.rb:13:in `block (3 levels) in <top (required)>' 3) StaticPages Home page should have the content 'Sample App' Failure/Error: visit root_path NameError: undefined local variable or method `root_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_1:0x00000004238d28> # ./static_pages_spec.rb:8:in `block (3 levels) in <top (required)>' 4) StaticPages Contact page should have the content 'Contact' Failure/Error: visit contact_path NameError: undefined local variable or method `contact_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_4:0x00000004223b08> # ./static_pages_spec.rb:52:in `block (3 levels) in <top (required)>' 5) StaticPages Contact page should have the title 'Contact' Failure/Error: visit contact_path NameError: undefined local variable or method `contact_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_4:0x00000004208448> # ./static_pages_spec.rb:56:in `block (3 levels) in <top (required)>' 6) StaticPages Help page should have the content 'Help' Failure/Error: visit help_path NameError: undefined local variable or method `help_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x000000041eaee8> # ./static_pages_spec.rb:28:in `block (3 levels) in <top (required)>' 7) StaticPages Help page should have the title 'Help' Failure/Error: visit help_path NameError: undefined local variable or method `help_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_2:0x000000041d3d88> # ./static_pages_spec.rb:32:in `block (3 levels) in <top (required)>' 8) StaticPages About page should have the content 'About Us' Failure/Error: visit about_path NameError: undefined local variable or method `about_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_3:0x000000041cded8> # ./static_pages_spec.rb:40:in `block (3 levels) in <top (required)>' 9) StaticPages About page should have the title 'About Us' Failure/Error: visit about_path NameError: undefined local variable or method `about_path' for #<RSpec::Core::ExampleGroup::Nested_1::Nested_3:0x000000041b59a0> # ./static_pages_spec.rb:44:in `block (3 levels) in <top (required)>' Finished in 0.01116 seconds 9 examples, 9 failures Failed examples: rspec ./static_pages_spec.rb:17 # StaticPages Home page should not have a custom page title rspec ./static_pages_spec.rb:12 # StaticPages Home page should have the base title rspec ./static_pages_spec.rb:7 # StaticPages Home page should have the content 'Sample App' rspec ./static_pages_spec.rb:51 # StaticPages Contact page should have the content 'Contact' rspec ./static_pages_spec.rb:55 # StaticPages Contact page should have the title 'Contact' rspec ./static_pages_spec.rb:27 # StaticPages Help page should have the content 'Help' rspec ./static_pages_spec.rb:31 # StaticPages Help page should have the title 'Help' rspec ./static_pages_spec.rb:39 # StaticPages About page should have the content 'About Us' rspec ./static_pages_spec.rb:43 # StaticPages About page should have the title 'About Us' Randomized with seed 8387 ---------------------------------------------------------- 【config/routes.rb】 Rails.application.routes.draw do root to: 'static_pages#home' match '/help', to: 'static_pages#help', via: 'get' match '/about', to: 'static_pages#about', via: 'get' match '/contact', to: 'static_pages#contact', via: 'get' ---------------------------------------------------------- 【spec/requests/static_pages_spec.rb】 require 'spec_helper' describe "StaticPages" do describe "Home page" do it "should have the content '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 content '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 content '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 --------------------------------------------------- 不好意思,提示一直說未定義具名路由,可是我檢查了好幾遍, 都有設定呀 Orz 一直搞不懂問題在哪裡。 想問問各位前輩了! 謝謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.59.1 ※ 文章網址: http://www.ptt.cc/bbs/Ruby/M.1406999159.A.6B1.html

08/03 01:36, , 1F
在Stackoverflow找到解決方法了...附上網址:
08/03 01:36, 1F

08/03 01:38, , 2F
08/03 01:38, 2F
文章代碼(AID): #1JtHftQn (Ruby)
文章代碼(AID): #1JtHftQn (Ruby)