--- Тип: Книга Статус: Прочитано Название: Принципы юнит-тестирования Автор: - Владимир Хориков Количество страниц: 320 Прогресс: 320 Формат: Бумажная Обложка: Библиотека/Книги/covers/unit-testing.jpg Начата: "2025" Закончена: "2025" Оценка: "9" Сложность: 7/10 Теги: - it - programming - testing - tdd Категории: - разработка программного обеспечения - тестирование Источник: Ссылка: https://disk.yandex.ru/i/Jvzknc8inPanvw --- ![[covers/unit-testing.jpg]] # Принципы юнит-тестирования ## 📖 О книге Одна из лучших книг о юнит-тестировании на практике. Владимир Хориков (Microsoft MVP) разбирает не просто «как писать тесты», а «что делает тест хорошим». Центральная идея — тесты должны проверять поведение, а не реализацию. Книга охватывает стили тестирования, работу с моками, архитектуру тестируемого кода и интеграционные тесты. Ориентирована на C#/.NET, но принципы универсальны. --- ## 🧠 Ключевые идеи - **Четыре свойства хорошего теста**: защита от регрессий, устойчивость к рефакторингу, быстрая обратная связь, удобство сопровождения — и между ними неизбежный компромисс - **Тестировать поведение, не реализацию**: тест, завязанный на детали реализации, хрупок — он будет ломаться при рефакторинге, не обнаруживая реальных багов - **Моки — инструмент, не цель**: злоупотребление моками приводит к тестам, которые проверяют взаимодействие объектов вместо бизнес-результата - **Классическая vs лондонская школа TDD**: классики тестируют единицы поведения, лондонцы — единицы кода; автор отдаёт предпочтение классическому подходу - **Интеграционные тесты дополняют, не заменяют**: они покрывают то, что юнит-тесты не могут — взаимодействие с БД, файловой системой, внешними сервисами --- ## 💬 Важные цитаты > «Тест, который не может сломаться при наличии бага, бесполезен. Тест, который ломается без бага, вреден.» > «Цель юнит-тестирования — обеспечить устойчивый рост проекта, а не максимальное покрытие кода.» --- ## 💡 Как применить в моих проектах --- ## 🔗 Связанные заметки - [[Чистый код]] - [[Идеальная работа. Программирование без прикрас]]