[問題] 設定具名路由, RSpec 測試不過
正在用 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
08/03 01:36, 1F
→
08/03 01:38, , 2F
08/03 01:38, 2F
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章