Хочу с экзитами закончить и подвести промежуточные итоги в этой части:
- Код теста получается больше продуктивного кода.
- Во многих случаях подходы TDD оправданы и рекомендуются к употреблению.
- Обзор существующего продуктивного кода без тестов вызывает существенное напряжение мозговых извилин.
- Если пытаться покрыть тестами уже написанный код, то часто без рефакторинга не обойтись. А рефакторинг – несколько другая и более сложная задача, чем само покрытие тестами. Рефакторинг можно отложить до момента, когда вы будете делать с кодом что-то ещё.
- Если у вас есть продуктивный код, который не меняется годами, то его покрывать тестами нужно в последнюю очередь.
- Код может быть остаться непокрытым из-за замкнутой петли: Нельзя сделать правильные тесты, потому что сначала надо сделать серьёзный рефакторинг, а делать рефакторинг не рекомендуется пока нет тестов. Разрывайте эти петли, если тесты всё-таки нужны.
- В некоторых случаях выполнить покрытие тестами не получается. Так бывает. Смиритесь.
- По некоторым метрикам подсчета полноты покрытия гораздо проще добиться 100%, чем по другим. Но это не значит, что нужно делать так, как проще.
- Тесты нужны не для того, чтобы добиться 100%, а для того, чтобы они когда-нибудь правильно упали. Потому что уметь правильно падать – это самое главное. Если это верно для каратистов и велосипедистов, значит и для программистов тоже. Лучше правильно упасть плохо крутя педали, чем неправильно упасть хорошо крутя педали.