Модуль 6: Тестирование и отладка

Обзор

Теперь, когда вы умеете создавать совершенные операторы с вебхуками (Модуль 5), пришло время научиться эффективно их тестировать и отлаживать. Этот модуль охватывает модульное тестирование с envtest, интеграционное тестирование, приёмы отладки и паттерны наблюдаемости, которые делают операторы готовыми к продакшену.

Продолжительность: 6–7 часов
Предварительные требования:

Цели обучения

К концу этого модуля вы:

  • Напишете исчерпывающие модульные тесты с использованием envtest
  • Создадите наборы интеграционных тестов с Ginkgo/Gomega
  • Научитесь эффективно отлаживать операторы с помощью Delve и логов
  • Добавите наблюдаемость с помощью метрик, логирования и событий
  • Разберётесь в лучших практиках тестирования операторов

Структура модуля

  1. Урок 6.1: Основы тестирования
  2. Урок 6.2: Модульное тестирование с envtest
  3. Урок 6.3: Интеграционное тестирование
  4. Урок 6.4: Отладка и наблюдаемость

Проверка предварительных требований

Перед началом убедитесь, что вы завершили:

  • Модуль 5: оператор с вебхуками
  • ✅ Понимаете тестирование на Go из Модуля 2
  • ✅ Имеете рабочий оператор из Модулей 3/4/5
  • ✅ Базовое понимание тестирования на Go (go test)

Если вы не завершили Модуль 5, начните с Модуля 5: Вебхуки и контроль допуска.

Что вы создадите

На протяжении этого модуля вы добавите тестирование и наблюдаемость в свой оператор Database:

  • Модульные тесты для логики согласования
  • Интеграционные тесты для сквозных (end-to-end) сценариев
  • Настройку отладки для локальной разработки
  • Метрики и логирование для наблюдаемости

Настройка

Перед началом этого модуля:

  1. Подготовьте свой оператор Database из Модулей 3/4/5:
    • Должен быть рабочий оператор
    • Реализованы вебхуки (из Модуля 5)
    • Готов к добавлению тестов
  2. Убедитесь, что среда разработки готова:
    ./scripts/setup-dev-environment.sh
    
  3. Установите инструменты тестирования:
    # Install Ginkgo and Gomega
    go install github.com/onsi/ginkgo/v2/ginkgo@latest
       
    # Install Delve debugger
    go install github.com/go-delve/delve/cmd/dlv@latest
    

Практические лабораторные работы

Каждый урок включает практические упражнения, которые добавляют тестирование и наблюдаемость в ваш оператор.

Решения

Полные рабочие решения для всех лабораторных доступны в каталоге решений:

Навигация