Чему вы научитесь
- Писать unit-тесты на Go с помощью стандартного пакета testing
- Создавать table-driven tests и проверять граничные случаи
- Тестировать ошибки и методы структур
- Проектировать Go-код так, чтобы его было проще тестировать
- Различать Mock, Stub и Fake и выбирать подходящий test double
- Создавать моки вручную и использовать Testify Mock и Mockery
- Тестировать HTTP handlers и REST API с помощью httptest
- Проверять HTTP-клиенты и взаимодействие с внешними сервисами
- Тестировать код, работающий с базами данных
- Использовать sqlmock, PostgreSQL и Testcontainers в тестах
- Писать интеграционные тесты для сервисного слоя
- Тестировать горутины, каналы и конкурентный Go-код
- Находить гонки данных с помощью Race Detector
- Создавать benchmarks и измерять производительность Go-кода
- Использовать профилирование вместе с тестами и бенчмарками
- Анализировать Code Coverage и оценивать качество тестового покрытия
- Распознавать антипаттерны тестирования
- Использовать Fuzz Testing и Property-Based Testing
- Понимать назначение Contract Testing
- Автоматизировать запуск тестов в CI/CD
О курсе
Для кого этот курс
Начальные требования
Знание базового синтаксиса Go
Умение работать с функциями, структурами и методами
Базовое понимание интерфейсов и обработки ошибок
Желательно базовое понимание HTTP и SQL для соответствующих разделов
Опыт профессиональной разработки не требуется
Предварительное знание библиотек тестирования не требуется
Преподаватели курса
Как проходит обучение
Обучение построено от простых unit-тестов к тестированию отдельных компонентов и полноценных взаимодействий внутри Go-приложения.
Сначала Вы изучаете концепцию и разбираете примеры, затем закрепляете материал тестами и практическими заданиями. По мере прохождения курса задачи усложняются: от проверки отдельной функции до HTTP API, PostgreSQL, конкурентного кода и интеграционных сценариев.
В курсе рассматривается как стандартный инструментарий Go, так и распространённые инструменты экосистемы: Testify Mock, Mockery, sqlmock и Testcontainers.
Обучение проходит в собственном темпе, а к материалам можно возвращаться для повторения и использования в качестве справочника.
Что вы получите
- Системное понимание тестирования Go-приложений
- Навык написания unit и table-driven тестов
- Практику работы с mocks, stubs и fakes
- Навыки тестирования HTTP API и HTTP-клиентов
- Опыт тестирования кода, работающего с PostgreSQL
- Понимание интеграционного тестирования и Testcontainers
- Навыки тестирования конкурентного кода и поиска data races
- Умение писать benchmarks и анализировать Code Coverage
- Знакомство с fuzz, property-based и contract testing
- Понимание автоматизации тестирования в CI/CD
- Базу для написания более надёжных и тестируемых Go-приложений
- Сертификат Stepik после успешного завершения курса