Разработчик хочет, чтобы обработчики позже можно было проверять изолированно без запуска реального порта и без общего состояния между тестами. Каким должен быть конструктор маршрутов?
Регистрировать обработчики через глобальный http.HandleFunc — так mux доступен из любого теста без передачи аргументов
Создать один *http.ServeMux как переменную пакета и регистрировать на нём все обработчики при инициализации
Создавать mux := http.NewServeMux() внутри функции, регистрировать обработчики на нём и возвращать этот mux как результат
Передавать nil вторым аргументом в http.ListenAndServe, чтобы каждый запрос создавал маршрутизатор заново