use*_*436 20 rspec ruby-on-rails ruby-on-rails-4
我在/ spec文件夹的根目录中的rspec文件中有以下代码块.
require 'spec_helper'
describe "home" do
subject { page }
before(:each) { visit root_path }
describe "page" do
it { should have_title('My Page')}
end
end
Run Code Online (Sandbox Code Playgroud)
当我跑它时,我得到了
undefined local variable or method `root_path'
Run Code Online (Sandbox Code Playgroud)
这没有任何意义.当我按照rails教程时,类似的设置工作得很好.有人可以帮忙吗?
编辑:
我的路线包括
root "static#home"
Run Code Online (Sandbox Code Playgroud)
编辑2:
重新打开此主题.将我的根声明移到顶部并没有解决它.
编辑3:
什么工作包括我的rspec配置中的url_helpers.我以前从来没有这样做过.任何人都可以回答为什么这有效
Ger*_*osi 37
默认情况下,命名路由在规范中不可用.将以下代码添加到spec_helper.rb:
RSpec.configure do |config|
config.include Rails.application.routes.url_helpers
end
Run Code Online (Sandbox Code Playgroud)
Len*_*ran 13
在routes.rb中,查看是否已定义root.像这样的东西:
root :to => 'home#index'
Run Code Online (Sandbox Code Playgroud)
你弄清楚了你的问题,但我想让别人知道他们可能收到错误信息的另一个原因......
NameError: undefined local variable or method `root_path'
Run Code Online (Sandbox Code Playgroud)
...是因为他们重命名了"根"路线:
例如:
root to: 'pages#landing', as: :home
Run Code Online (Sandbox Code Playgroud)
这将在您的应用程序中创建home_path和home_url命名为帮助程序,root_path而且root_url将是未定义的.
| 归档时间: |
|
| 查看次数: |
19117 次 |
| 最近记录: |