Они НЕ АБСОЛЮТНАЯ справочная документация
Обратите внимание, что многое из следующего применимо и к комментариям, так как они могут быть не синхронизированы с кодом, например, тестами (хотя это менее осуществимо).
Итак, в конце концов, лучший способ понять код - это иметь читаемый рабочий код .
Если вообще возможно и не писать жестко разделенные низкоуровневые фрагменты кода или особенно сложные условия, дополнительная документация будет иметь решающее значение.
- Тесты могут быть неполными:
- API изменился и не был протестирован,
- Человек, который написал код, написал тесты для самых простых методов для тестирования сначала вместо самых важных методов для тестирования, а затем не было времени, чтобы закончить.
- Тесты могут быть устаревшими.
- Тесты могут быть закорочены неочевидными способами и фактически не выполнены.
НО они ПОЛЕЗНО ПОЛЕЗНЫМ дополнением к документации
Однако, когда сомневаешься в том, что делает конкретный класс, особенно если он довольно длинный, неясный и лишен комментариев (вы знаете, какого рода ...), я быстро пытаюсь найти его тестовый класс (ы) и проверить:
- что они на самом деле пытаются проверить (дает подсказку о самых важных лакомых кусках, за исключением того, что разработчик допустил ошибку, упомянутую выше, только при реализации «простых» тестов),
- и если есть угловые случаи.
Кроме того, если они написаны с использованием стиля BDD , они дают довольно хорошее определение контракта класса . Откройте вашу IDE (или используйте grep), чтобы увидеть только имена методов и таду: у вас есть список поведения.
Регрессиям и ошибкам тоже нужны тесты
Также рекомендуется писать тесты для регрессии и отчетов об ошибках: вы что-то исправляете, вы пишете тест, чтобы воспроизвести случай. Оглядываясь на них, можно найти соответствующий отчет об ошибке и все детали, например, о старой проблеме.
Я бы сказал, что они являются хорошим дополнением к реальной документации и, по крайней мере, ценным ресурсом в этом отношении. Это хороший инструмент, если его правильно использовать. Если вы начнете тестирование в начале своего проекта и сделаете его привычкой, это МОЖЕТ быть очень хорошей справочной документацией. В существующем проекте с плохими привычками кодирования, уже воняющими в базу кода, обращайтесь с ними осторожно.