Якщо почати наступний Test Driven розвитку практики, вони будуть свого роду керівництво вас через процес і знаючи , що тестування буде, природно. Деякі місця для початку:
Тести приходять першими
Ніколи, ніколи не пишіть код перед тим, як писати тести. Пояснення див. У розділі Червоний-Зелений-Рефактор-повтор .
Напишіть регресійні тести
Щоразу, коли ви стикаєтеся з помилкою, пишіть пробну скриньку та переконайтеся, що вона виходить з ладу . Якщо ви не зможете відтворити помилку через несправний тестовий зразок, ви її справді не знайшли.
Червоний-Зелений-Refactor-Повторіть
Червоний : Почніть з написання найосновнішого тесту на поведінку, яку ви намагаєтеся реалізувати. Подумайте про цей крок як про написання прикладу коду, який використовує клас або функцію, над якою ви працюєте. Переконайтесь, що він компілює / не має синтаксичних помилок і що він не працює . Це повинно бути очевидним: ви не написали жодного коду, тому він повинен вийти з ладу, правда? Тут важливо навчитися тому, що якщо ви хоч раз не побачите тест, який виходить з ладу, ви ніколи не можете бути впевнені, що якщо він пройде, він зробить це через щось, що ви зробили через якусь хибну причину.
Зелений : Напишіть найпростіший і дурний код, який насправді робить тестовий прохід. Не намагайтеся бути розумними. Навіть якщо ви бачите, що є очевидний крайовий випадок, але тест враховуйте, не пишіть код, щоб обробити його (але не забувайте про крайовий регістр: він вам знадобиться пізніше). Ідея полягає в тому, щоб кожен фрагмент коду, який ви пишете, кожен if
, кожен try: ... except: ...
повинен бути виправданий тестовим випадком. Код не повинен бути елегантним, швидким або оптимізованим. Ви просто хочете, щоб тест пройшов.
Refactor : Очистіть код, підберіть правильні назви методів. Подивіться, чи тест ще проходить. Оптимізуйте. Виконайте тест ще раз.
Повторіть : Ви пам’ятаєте крайню справу, яку тест не охоплював, правда? Отже, зараз настав його великий момент. Напишіть контрольну скриньку, яка висвітлює цю ситуацію, стежте за тим, як вона виходить з ладу, напишіть якийсь код, побачите, як він проходить, рефактор.
Перевірте свій код
Ви працюєте над певним кодом, і саме це ви хочете перевірити. Це означає, що ви не повинні тестувати функції бібліотеки, стандартну бібліотеку чи ваш компілятор. Також намагайтеся уникати тестування "світу". Сюди входить: виклик зовнішніх веб-API, деяких інтенсивних баз даних тощо. Кожного разу, коли ви можете спробувати знущатися над цим (зробіть об’єкт, який слід за тим самим інтерфейсом, але повертає статичні, заздалегідь задані дані).