E2E (end-to-end) тест проверяет систему целиком, от клиента до базы данных. Ты поднимаешь всё приложение (обычно в Docker Compose), шлёшь реальные HTTP-запросы и проверяешь ответы. Это самый медленный, но самый честный вид тестов — он ловит проблемы с конфигурацией, маршрутизацией, сериализацией и всем остальным. В Go для этого часто используют httptest.NewServer или Docker Compose с testcontainers. Обычно e2e тестов мало, но они покрывают критические пользовательские сценарии.