Тестировать HTTP-серверы на Go — это проще простого, потому что сам сервер — это просто функция, которую легко вызвать в тестах. Так что тестировать HTTP-уровень — это как тестировать любой другой кусок кода на Go, и при необходимости можно легко замокать зависимости. Но вот с проверкой HTML-ответов всё немного сложнее. Тут приходится копаться в деталях реализации, а не просто смотреть на поведение. Поведение приложения зависит от кучи вещей: атрибутов в HTML, внутренних обработчиков маршрутов, заголовков ответов и даже кусков текста, которые должны вызывать определённые действия в браузере. Так что тут тесты могут стать чуть более хрупкими и завязанными на детали.