# File lib/action_dispatch/testing/assertions/routing.rb, line 147
      def with_routing
        old_routes, @routes = @routes, ActionDispatch::Routing::RouteSet.new
        old_controller, @controller = @controller, @controller.clone if @controller
        _routes = @routes

        # Unfortunately, there is currently an abstraction leak between AC::Base
        # and AV::Base which requires having the URL helpers in both AC and AV.
        # To do this safely at runtime for tests, we need to bump up the helper serial
        # to that the old AV subclass isn't cached.
        #
        # TODO: Make this unnecessary
        if @controller
          @controller.singleton_class.send(:include, _routes.url_helpers)
          @controller.view_context_class = Class.new(@controller.view_context_class) do
            include _routes.url_helpers
          end
        end
        yield @routes
      ensure
        @routes = old_routes
        if @controller
          @controller = old_controller
        end
      end