Coconote
AI notes
AI voice & video notes
Export note
Try for free
Тестирование в программировании
Jul 24, 2024
Запись лекции: Тестирование в программировании
Введение
Лектор: Саня, старший разработчик в Азот и Вектор.
Обсуждение значимости написания тестов в процессах разработки.
Проблемы разработчиков
Разработчики не понимают, что именно они хотят тестировать.
Происходят боли в том, как декомпозировать код и разделять его.
Основные жалобы:
Проблемы с кармой, интерфейсами системы типов, указателями.
Проблемы с тестированием.
Зачем писать тесты?
Тестирование связано с композицией и архитектурой приложения.
Необходимо понимать, какие тесты и на каком уровне писать:
Юнит-тесты
: простые, дешевле всего писать.
Интеграционные тесты
: сложнее, но обеспечивают всестороннюю проверку, включая взаимодействие компонентов.
E2E (End-to-End) тесты
: дорогие в написании и поддержке, проверяют весь поток приложения.
Тестовая пирамида
Юнит-тесты
на нижнем уровне (большее количество).
Интеграционные тесты
на среднем уровне.
E2E тесты
на верхнем уровне (меньше всего).
Основные концепции тестирования
Модель данных
(Entities): просто передаются между слоями без изменения.
Бизнес-логика
(Use Cases): основной уровень обработки данных.
Контроллеры
(Controllers): принимают входящие запросы и направляют их в бизнес-логику.
Виды тестов
Юнит-тесты
: проверяют отдельные методы или функции.
Проверяют только функциональность метода, без гарантий на API.
Интеграционные тесты
: проверяют работу нескольких компонентов вместе.
E2E тесты
: проверяют всю систему в целом (например, интернет-магазин).
Применение тестов
Нужно начинать с простых юнит-тестов.
Игнорирование тестов может привести к поломке функционала программы.
Понимание того, где можно написать эффективные и простые тесты.
Пример: тестирование валидации
Написание тестов для проверки данных на уровне валидации.
Простые юнит-тесты могут существенно улучшить защиту от ошибок.
Что такое тестовые двойники?
Фейки
: упрощенные реализации интерфейсов.
Стабы
: заранее подготовленные ответы от зависимостей.
Моки
: тягуют желание поведения, могут эмулировать различные ответы на тестовые запросы.
Написание тестов
Примеры тестов на валидацию.
Как правильно организовать и структурировать тесты.
Проверка успешных и неуспешных сценариев использования.
Подводя итог
Понимание важности тестирования и ведения тестов, чтобы иметь надежную архитектуру кода.
Необходимо регулярно писать тесты, чтобы улучшить защиту кода и отпугнуть потенциальные ошибки.
Интерес к дополнительным видео о интеграционных тестах и их гарантиях.
📄
Full transcript