1

我正在尝试为自定义设计路线启用功能测试,但我一直遇到我不知道如何解决的障碍。我要测试的路线在devise_scope :user我的路线文件的块中(见下文)

devise_for :users, :controllers => {:registrations => "registrations", 
                                    :confirmations => "confirmations",
                                    :sessions => "sessions"}
devise_scope :user do
    get '/trainer/:referral_trainer' => "registrations#new"
    get '*referral_trainer' => "registrations#new_client"
    post '/client_sign_up' => "registrations#create_client"
end

我的测试看起来像:

test "should get new" do
    params = {}
    params["referral_trainer"] = "trainer"

    get("new", params)
    assert_response :success

    params = {}
    params["trainer"] = "trainer"

    get("new_client", params)
    assert_response :success
end

但我得到的错误是:

ActionController::RoutingError: No route matches {:referral_trainer=>"trainer", :controller=>"registrations", :action=>"/trainer/*referral_trainer"}

ActionController::RoutingError: No route matches {:trainer=>"trainer", :controller=>"registrations", :action=>"new_client"}

在我的测试中,我也有:

setup do
    @controller = RegistrationsController.new
    @request.env["devise.mapping"] = Devise.mappings[:user]
end

以便使用正确的控制器和设计映射。

耙路线返回:

GET    /trainer/:referral_trainer(.:format)              registrations#new
GET    /*referral_trainer(.:format)                      registrations#new_client

所以我知道这些路线存在(并在生产中使用过),但我不知道如何以编程方式测试它们。

任何帮助,将不胜感激。

谢谢!

4

0 回答 0