我使用rails v5.1.0
和rspec-rails 3.5.2
开发一个Rails引擎的路线。RSpec的功能规格找不到Rails的引擎
我有一个简单的功能规格:
require "rails_helper"
module MyEngineName
RSpec.feature "Some Feature", type: :feature do
it "user can navigate to page and blah blah", :js do
visit edit_job_path(1)
# .... other stuff
end
end
end
这就提出了一个错误
undefined method `edit_job_path' for #<RSpec::ExampleGroups::SomeFeature:0x007fc098a570e8>
因为路线助手edit_job_path
无法找到。
是不是有什么特别的,我需要为了让我的功能规格来访问我的引擎的路线呢?
RSpec的文档mentions that you can specify the engine routes,但这只似乎是路由规格。当我把它添加到功能规范,它失败undefined method 'routes'
谢谢!
编辑:由于被请求我的路线文件,在这里将它添加。这是非常短 - 从耙所有路线的
# config/routes.rb
MyEngineName::Engine.routes.draw do
root to: redirect("/my_engine_name/jobs")
resources :jobs
end
列表从这个
> rake app:routes
....
....
Routes for MyEngineName::Engine:
root GET / redirect(301, /my_engine_name/jobs)
jobs GET /jobs(.:format) my_engine_name/jobs#index
POST /jobs(.:format) my_engine_name/jobs#create
new_job GET /jobs/new(.:format) my_engine_name/jobs#new
edit_job GET /jobs/:id/edit(.:format) my_engine_name/jobs#edit
job GET /jobs/:id(.:format) my_engine_name/jobs#show
PATCH /jobs/:id(.:format) my_engine_name/jobs#update
PUT /jobs/:id(.:format) my_engine_name/jobs#update
DELETE /jobs/:id(.:format) my_engine_name/jobs#destroy
显示你'routes.rb'文件,至少一对夫妇的第一线。 – chumakoff
@chumakoff - 用它编辑帖子。谢谢! – user2490003