スコープ ルートの rspec コントローラ スペックで「get」メソッドを回避できないようです。
「訪問者」コントローラーのルートをスコープして、「訪問者」モジュールの名前空間内にあるが、ルーティングのルートにあるようにします。したがって、'mysite.com/foo' は Visitor::FooController に移動します。
config/routes.rb
scope :module => 'visitor' do
resources :inquiries
end
仕様/コントローラー/訪問者/問い合わせ_コントローラー_spec.rb
require 'spec_helper'
describe Visitor::InquiriesController do
describe 'GET new' do
it 'should render template visitor/inquiries/new' do
get :new
end
end
end
app/controllers/visitor/inquiries_controller.rb
class Visitor::InquiriesController < Visitor::BaseController
def new
end
end
仕様を実行すると、次のエラーが表示されます。
No route matches {:controller=>"visitor/inquiries", :action=>"new"}
get にいくつかの追加パラメーターを追加しようとしました (例: :url => 'inquiries/new'、:controller => 'inquiries') が、この問題を回避できないようです。ブラウザで「inquiries/new」を押すと問題なく動作し、ルートが期待どおりに機能していることを示しています。
私はrspecが初めてなので、ここで理解していない基本的な問題があるかもしれません。それ以外の場合は、この問題を乗り越えて、これらの「ビジター」コントローラーをテストできる方法を探しています。どんな助けでも大歓迎です!