Логотип LiveLibbetaК основной версии

Это бета-версия LiveLib. Сейчас доступна часть функций, остальные из основной версии будут добавляться постепенно.

Рецензия на книгу

Принципы юнит-тестирования

Владимир Хориков

  • Аватар пользователя
    long3999 марта 2025 г.

    О пользе тестирования программного обеспечения

    Данный труд стал первым знакомством с Владимиром Хориковым , который является автором, блогером и обладателем сертификата «Microsoft MVP». Книгу почитать мне дал коллега по работе, за что ему огромное спасибо.

    Книга кратко (но емко) описывает, зачем нужно писать полезные и устойчивые к рефакторингу кода тесты. До читателя доходчиво доносится, что без тестов не может обойтись ни одно более-менее большое приложение. Тесты должны быть интегрированы в жизненный цикл разработки, ведь они на ранних этапах помогают найти и избавиться от коварных багов в рабочем коде.

    Но не все тесты приносят пользу. Тесты могут и навредить. Если ваши тесты будут хрупкими, то есть почти не устойчивыми к рефакторингу, то они принесут много головной боли и проблем. Помимо трудозатрат на написание бизнес-логики в рабочем коде, вам каждый раз придется переписывать и ваши тесты, чтобы они не "падали" из-за внесенных изменений.

    Рассмотрена также и «пирамида тестирования».

    В проекте должно быть больше всего юнит-тестов, ведь их проще всего писать и сопровождать. На втором месте по количеству должны идти интеграционные тесты и меньше всего должно быть сквозных (end-to-end) тестов.

    В книге рассказывается о двух школах юнит-тестирования (классической и лондонской), о предпосылках их появления и о разнице в подходах к написанию тестов, которые данные школы применяют. Большее предпочтение автор отдает классической школе.

    Большое внимание в книге уделено описанию фиктивных зависимостей в тестах (их разновидности и особенности):

    • пустышки (dummy);
    • стабы (stub);
    • шпионы (spy);
    • моки (mock);
    • фейки (fake).

      Несколько важных слов сказано о часто встречающихся при написании тестов антипаттернах. Читателям даются советы, как избежать подобных ошибок, что облегчит последующее сопровождение тестов и избавит от лишних проблем.

      Рекомендую прочитать данную книгу всем людям, имеющим отношение к разработке ПО. Как ни удивительно, практика написания хороших тестов способствует созданию более качественного кода.

      Моя оценка 4.5/5.

    23
    265