Вони НЕ АБСОЛЮТНІ довідкові документи
Зауважте, що чимало наступного стосується також коментарів, оскільки вони можуть вийти з синхронізації з кодом, як тести (хоча це менш доцільно).
Отже, зрештою, найкращий спосіб зрозуміти код - це читати робочий код .
Якщо це взагалі можливо і не пишуться провідні розділи коду низького рівня або особливо складні умови, додаткова документація буде вирішальною.
- Тести можуть бути неповними:
- API змінився і не перевірявся,
- Людина, яка написала код, написала тести для найпростіших методів, щоб перевірити спочатку замість найважливіших методів тестування, а потім не встигла закінчити.
- Тести можуть бути застарілими.
- Тести можуть бути короткозамкненими неочевидними способами і насправді не виконуватись.
АЛЕ вони ВІДПОВІДАЮТЬ ДОПОМОГУ Доповнення документації
Однак, коли ви сумніваєтесь у тому, що робить конкретний клас, особливо якщо він досить тривалий, незрозумілий і не вистачає коментарів (ви знаєте вид ...), я швидко намагаюся знайти його тестовий клас і перевірити:
- що вони насправді намагаються перевірити (дає підказку про найважливіші ласощі, за винятком випадків, коли розробник робив помилку, згадану вище, лише впроваджуючи "прості" тести),
- і якщо є кутові корпуси.
Плюс до цього, якщо вони написані у стилі BDD , вони дають досить хороше визначення контракту класу . Відкрийте свій IDE (або використовуйте grep), щоб побачити лише імена методів і тада: у вас є список поведінки.
Регресії та помилки потребують занадто тестів
Крім того, є хорошою практикою писати тести на регресію та на звіти про помилки: ви щось виправляєте, ви пишете тест для відтворення випадку. Оглянувши їх, це хороший спосіб знайти відповідний звіт про помилку та, наприклад, усі подробиці про стару проблему.
Я б сказав, що вони добре доповнюють реальну документацію і принаймні цінний ресурс у цьому плані. Це хороший засіб при правильному використанні. Якщо ви розпочнете тестування на початку свого проекту і зробите це звичкою, це БУДЬ дуже хороша довідкова документація. У існуючому проекті з поганими звичками кодування, які вже стирають кодову базу, поводьтеся з ними обережно.