Ответ
E2E (End-to-End) тесты проверяют работу приложения целиком, от начала до конца, имитируя поведение реального пользователя. Они охватывают все компоненты системы: фронтенд, бекенд, базы данных, внешние сервисы.
Пример на Go с использованием фреймворка testify и chromedriver для тестирования веб-приложения:
func TestUserRegistration(t *testing.T) {
// Запуск браузера
opts := append(chromedp.DefaultExecAllocatorOptions[:],
chromedp.Flag("headless", true),
)
ctx, cancel := chromedp.NewExecAllocator(context.Background(), opts...)
defer cancel()
// Тест: регистрация пользователя
err := chromedp.Run(ctx,
chromedp.Navigate("http://localhost:8080/register"),
chromedp.SendKeys("#email", "test@example.com"),
chromedp.SendKeys("#password", "password123"),
chromedp.Click("#submit"),
chromedp.WaitVisible("#welcome-message"),
)
assert.NoError(t, err)
}
Ключевые особенности E2E:
- Проверяют интеграцию всех компонентов
- Медленные и ресурсоемкие
- Хрупкие (часто ломаются при изменениях UI)
- Должны быть изолированы от тестовой среды