RSpec: тестирование пути к отображению маршрута (но не наоборот) - PullRequest
0 голосов
/ 15 июля 2010

Мне нужно использовать функциональность params_from, которая устарела. Теперь route_to сочетает в себе поведение params_from и route_for. Но я не хочу проверять, что route генерирует path , потому что это не так, и это сделано намеренно (для обратной совместимости в старых письмах мне нужно "псевдоним" старого пути к правильному контроллеру / действию, но путь, сгенерированный новым маршрутом, будет другим. Я знаю, сбивающий с толку;)

При использовании params_from и route_to я получаю противоречивые результаты (возможно, params_for не работает?):

# params_from(:get, 'user/tasks').should == { :controller => 'user', :action => 'tasks' }
No route matches "user/tasks" with {:method=>:get} 

# { :get => 'user/tasks' }.should_not be_routable
Expected 'GET user/tasks' to fail, but it routed to {"action"=>"tasks", "controller"=>"user"} instead

Маршрут существует, я могу успешно использовать путь через пользовательский интерфейс.

IMO, эта комбинация params_from и route_for является плохой идеей, если только отдельные совпадения не поддерживаются. Но, может быть, я что-то упустил очевидное;)

Ответы [ 2 ]

0 голосов
/ 15 июля 2010

Какова ценность явного тестирования вашего набора маршрутов?

Возможно, вы получите это бесплатно, если вы напишете хотя бы минимальный функциональный тест для ваших контроллеров.

0 голосов
/ 15 июля 2010

Это то, что я искал и нашел во время взлома исходного кода: assert_recognizes({ :controller => 'user', :action => 'tasks'}, 'user/tasks', {}, nil)

Я, вероятно, оберну его в params_for matcher.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...