2

ルート:

Users::Engine.routes.draw do
  get "test/step1", to: "test#step1", as: "step1"
  get "test/step2", to: "test#step2", as: "step2"
end

コントローラー仕様:

describe Users::Test do
  it "sample" do
    get :test2, use_route: "users"
    response.should redirect_to users.step1_path
  end
end

レーキルート:

Routes for Users::Engine:
  step1 GET    /test/step1(.:format)                    users/test#step1
  step2 GET    /test/step2(.:format)                    users/test#step2
....

エラーがあります:

Failure/Error: response.should redirect_to users.step1_path
     NameError:
       undefined local variable or method `users' for #<RSpec::Core::ExampleGroup::Nested_9::Nested_3:0xb7496f8>

users.step1_pathコントローラー仕様のようにエンジン パス ヘルパーを使用するにはどうすればよいですか?

4

2 に答える 2

2

RSpec ルートは、エンジン コントローラー テスト用のデフォルトのグローバル Rails.route ではなく、エンジン ルート セットに設定する必要があります。

describe Users::Test do

  routes { Users::Engine.routes }

  it "sample" do
    get :test2
    response.should redirect_to step1_path
  end

end
于 2014-02-02T20:49:06.003 に答える