module ActionDispatch::Assertions::RoutingAssertions

def with_routing


end
assert_equal "/users", users_path
end
resources :users
set.draw do
with_routing do |set|

will create some routes using set.draw { match ... }:
The new instance is yielded to the passed block. Typically the block

This method temporarily replaces @routes with a new RouteSet instance.
A helper to make it easier to test different route configurations.
def with_routing
  old_routes, @routes = @routes, ActionDispatch::Routing::RouteSet.new
  if defined?(@controller) && @controller
    old_controller, @controller = @controller, @controller.clone
    _routes = @routes
    @controller.singleton_class.include(_routes.url_helpers)
    if @controller.respond_to? :view_context_class
      view_context_class = Class.new(@controller.view_context_class) do
        include _routes.url_helpers
      end
      custom_view_context = Module.new {
        define_method(:view_context_class) do
          view_context_class
        end
      }
      @controller.extend(custom_view_context)
    end
  end
  yield @routes
ensure
  @routes = old_routes
  if defined?(@controller) && @controller
    @controller = old_controller
  end
end