小编And*_*zin的帖子

无法在Rails 3.2 + Rspec 2.13下测试引擎路由

在我的引擎'Utilizer'中,我试图用Rspec 3.2测试路线.命名空间是孤立的

# lib/utilizer/engine.rb
module Utilizer
    class Engine < ::Rails::Engine
        isolate_namespace Utilizer
        ...
    end
end
Run Code Online (Sandbox Code Playgroud)

引擎安装到虚拟应用程序:

    # spec/dummy/config/routes.rb
    Rails.application.routes.draw do
      mount Utilizer::Engine => "/utilizer", as: 'utilizer'
    end
Run Code Online (Sandbox Code Playgroud)

对spec_helper.rb我添加了几个配置如下(从这里):

# spec/spec_helper.rb
RSpec.configure do |config|
  ...
  config.before(:each, type: :routing)    { @routes = Utilizer::Engine.routes }
  ...
end 
Run Code Online (Sandbox Code Playgroud)

当我定义一条路线时:

# config/routes.rb
Utilizer::Engine.routes.draw do
  resources :auths, id: /\d+/, only: [:destroy]
end
Run Code Online (Sandbox Code Playgroud)

Rake为虚拟应用程序正确显示:

$ spec/dummy > bundle exec rake routes

$ utilizer /utilizer Utilizer::Engine
$ Routes for Utilizer::Engine:
$ auth DELETE /auths/:id(.:format) utilizer/auths#destroy {:id=>/\d+/} …
Run Code Online (Sandbox Code Playgroud)

routing rspec rule-engine rspec-rails ruby-on-rails-3

3
推荐指数
1
解决办法
1209
查看次数