メインコンテンツまでスキップ

エンジンのルートを使用する

ルーティングの仕様では、例のグループに使用されるルートセットを指定できます。これは、Railsエンジンをテストする際に最も便利です。

エンジンのルートを指定する

次の内容で「spec/routing/engine_routes_spec.rb」という名前のファイルがあるとします。

require "rails_helper"

# A very simple Rails engine
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
end

Engine.routes.draw do
resources :widgets, :only => [:index]
end

class WidgetsController < ::ActionController::Base
def index
end
end
end

RSpec.describe MyEngine::WidgetsController, type: :routing do
routes { MyEngine::Engine.routes }

it "routes to the list of all widgets" do
expect(:get => widgets_path).
to route_to(:controller => "my_engine/widgets", :action => "index")
end
end

rspec specを実行すると、

すべての例がパスするはずです。