Маршруты должны выполняться как часть интеграционных тестов.Интеграционные тесты - это место, где вы тестируете важные рабочие процессы вашего приложения - более конкретно, определен ли URL-адрес как важный рабочий процесс.
Ваш интеграционный тест будет выглядеть как любой нормальный интеграционный тест :
# /tests/integration/routes_test.rb
require 'test_helper'
class RoutesTest < ActionController::IntegrationTest
test "route test" do
assert_generates "/photos/1", { :controller => "photos", :action => "show", :id => "1" }
assert_generates "/about", :controller => "pages", :action => "about"
end
end
Относительно ответа @ jemminger о том, что не тестируются маршруты. Несмотря на то, что тесты Rail проверяют работоспособность route.rb, Rail не несет ответственности за проверкуhttp://yoursite.com/users
определен в ваших маршрутах.Предостережение заключается в том, что большинство тестирований маршрутов может выполняться в существующих интеграционных тестах, поэтому конкретные тесты для маршрутов могут быть избыточными.
Конкретный вариант использования, о котором я могу подумать, это все люди, которые уже имеют или собираютсяобновление с Rails 2 до Rails 3. Код для определения маршрутов значительно изменился, и по тестам лучше выяснить, что маршруты были обновлены правильно, чем от пользователей, когда они сообщают о 404 ошибках.