Юнит-тесты по мелочам
Еще одна вещь, которую нужно помнить, это то, что юнит-тесты проверяют мелочи, «юниты». Поэтому, если ваш тест выполняется на ресурсе, таком как живой сервер или база данных, большинство людей называют это тестом системы или интеграции. Для модульного тестирования только кода, который говорит с подобным ресурсом, люди часто используют фиктивные объекты (часто называемые фиктивными).
Модульные тесты должны выполняться быстро и часто запускаться
Когда модульные тесты проверяют мелочи, тесты выполняются быстро. Это хорошая вещь. Часто выполняемые модульные тесты помогают вам обнаруживать проблемы вскоре после их возникновения. Самое главное в часто используемых модульных тестах - автоматизировать их как часть непрерывной интеграции .
Юнит-тесты лучше всего работают при высоком охвате
У людей разные взгляды относительно того, желателен ли 100% охват модульным тестом. Я верю в то, что высокий охват - это хорошо, но есть точка снижения прибыли. Как очень грубое практическое правило, я был бы доволен кодовой базой с 85% охватом хорошими модульными тестами.
Модульные тесты не являются заменой для других типов тестов
Столь же важными, как и модульные тесты, другие типы тестирования, такие как интеграционные тесты, приемочные тесты и другие, также могут рассматриваться как части хорошо протестированной системы.
Модульное тестирование существующего кода ставит особые задачи
Если вы хотите добавить модульные тесты в существующий код, вы можете посмотреть на Эффективная работа с устаревшим кодом от Michael Feathers. Код, который не был разработан с учетом тестирования, может иметь характеристики , которые затрудняют тестирование , и Feathers пишет о способах тщательного рефакторинга кода, чтобы облегчить его тестирование. А когда вы знакомы с определенными шаблонами, которые затрудняют тестирование кода, вы и ваша команда можете написать код, который пытается избежать / минимизировать эти шаблоны.