маршруты функционального тестирования с ограничением https - PullRequest
1 голос
/ 06 сентября 2011

Если я оберну необходимые маршруты SSL в блоке, например так:

scope :protocol => "https://", :constraints => { :protocol => 
"https://" } do 
  resources :users, :only => [:new, :create, :edit, :update] 
end 

, то все мои функциональные тесты, которые ссылаются на эти маршруты, теперь выплевывают RoutingErrors.Примерно так:

put :update, :id => 123 
ActionController::RoutingError: No route matches 
{:id=>"123", :controller=>"users", :action=>"update"} 

FWIW:

rake routes | grep update 
user PUT    /users/:id(.:format) 
{:protocol=>"http://", :action=>"update", :controller=>"users"} 

Итак, что, я должен сейчас указать протокол в моих функциональных тестах?

1 Ответ

0 голосов
/ 09 сентября 2011

Вы можете включить HTTPS в настройках вашего теста:

setup do
  @request.env['HTTPS'] = 'on'
end

Или вы можете изменить ваш route.rb для использования http в тестовой среде:

scope :constraints => { :protocol => Rails.env.test? "http" : "https" } do 
  resources :users, :only => [:new, :create, :edit, :update] 
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...