Base/Knowledges/Библиотека/Книги/Принципы юнит-тестирования.md

60 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
Тип: Книга
Статус: Прочитано
Название: Принципы юнит-тестирования
Автор:
- Владимир Хориков
Количество страниц: 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**: классики тестируют единицы поведения, лондонцы — единицы кода; автор отдаёт предпочтение классическому подходу
- **Интеграционные тесты дополняют, не заменяют**: они покрывают то, что юнит-тесты не могут — взаимодействие с БД, файловой системой, внешними сервисами
---
## 💬 Важные цитаты
> «Тест, который не может сломаться при наличии бага, бесполезен. Тест, который ломается без бага, вреден.»
> «Цель юнит-тестирования — обеспечить устойчивый рост проекта, а не максимальное покрытие кода.»
---
## 💡 Как применить в моих проектах
---
## 🔗 Связанные заметки
- [[Чистый код]]
- [[Идеальная работа. Программирование без прикрас]]