Я хочу вивчити (і освоїти) TDD. Які найкращі:
- книги
- веб-сайти
- відео
- список вправ
- особисті слова мудрості
для навчання, оцінки та використання TDD?
Я хочу вивчити (і освоїти) TDD. Які найкращі:
для навчання, оцінки та використання TDD?
Відповіді:
Особисто я виявив, що прочитати твір JUnit чи два, підкресливши, що "ти пишеш тест перед кодом", було достатньо, щоб почати мене.
Найважливіша частина у вивченні цієї технології - це написання МНОГО тестового коду , тому що вам потрібно змінити деякі основні способи написання коду. Такі речі:
Найкраще почати з малого - це утиліта. Наступного разу вам знадобиться лише тоді спроектуйте, що спочатку тести напишіть безліч тестів, що охоплюють усі ваші офіційні користувальницькі випадки (включаючи те, що має відбутися з нульовими значеннями, переданими тощо), і коли всі випадки використання будуть реалізовані, ви повинні мати можливість використовувати це безпосередньо у вашому коді, і будьте впевнені, він працює так, як очікувалося.
Також мій досвід, що хороші тести можуть зробити додаткову роботу як документацію, оскільки у вас є дуже дуже стислий код, який точно говорить про те, як код поводиться в різних ситуаціях, що може бути легко підтверджено правильним (зелена смуга). Уважними коментарями ви не розумієте це набагато краще.
Для Java jUnit версія 4 справді приємна.
На мою думку, TDD скоріше стосується того, щоб зробити код перевіряючим, ніж писати тести.
Впевнені, що ви можете написати тест перед кодуванням, але вся причина написання тесту полягає в тому, що ви можете кодувати - що не зупинить вас від написання коду, який важко перевірити.
Погляньте на це, щоб краще зрозуміти, що я маю на увазі: Моя єдина теорія помилок
Якщо вас зацікавила концепція та ви хочете дізнатися більше, просто прокоментуйте - і я вкажу вам напрямок записаної презентації на тему від Google.
ОНОВЛЕННЯ:
Як написати чистий, тестовий код
Miško Hevery Подання (До GoogleTechTalks ) В Google в Нью - Йорку і при підтримці компанії Google Engineering Productivity групи
Крім деяких згаданих книг, я можу порекомендувати вирощування об'єктно-орієнтованого програмного забезпечення, керованого тестами . Я ще не закінчив її читати, але це гідне прочитання, включаючи історію цілого, реалістичного проекту TDD, а не просто спрощених прикладів коду.
Я прочитав дві книги:
Тестова розробка: за прикладом Кент Бек і
Тестові рамки підрозділу Пола Хаміля
Книга Бека добре оцінена, але я не розпочав тестування одиниць, поки не прочитав "Рамкові тестові рамки". Я роблю деякі TDD, але я також додаю тести до більш старого коду, який я маю підтримувати (коли можу).
Редагувати: Також, як тільки ви отримаєте ручку, рекомендую одразу використовувати його в поточному проекті. Для мене саме тоді відбулося справжнє навчання, і я думаю, що книга «Тестові рамки» була кращою довідником для цієї мети. (Я використовував nunit з C #).
Хоча це не в першу чергу про TDD (хоча це стосується і тестування, а також проектування для перевірки), "Art of Unit Testing" - це книга, яку я б рекомендував, тому що вона вчить вас писати хороші тести.
Більш конкретно, він вчить, як створити надійні, ремонтопридатні та читабельні тести. Я думаю, що це найважливіший розділ книги, за межами, мабуть, основ про тестування блоків та рамки ізоляції. Очевидно, що якщо одиничні тести стануть больовою точкою або додадуть тертя в роботу розробника, то будь-який успіх чи користь від них будуть обмежені. Якщо хтось вкладає час і зусилля для створення тестів, тоді він (и) повинен мати можливість отримати максимальну віддачу від цієї інвестиції.