Некоторые скажут иначе, но я бы посоветовал вам разделить TDD и Unit Testing. TDD - это довольно умственный сдвиг, и модульное тестирование изначально требует времени. Если вы считаете, что они являются одним элементом, существует риск, что вы не сразу увидите достаточную выгоду, и у вас будет соблазн просто отказаться от TDD и модульного тестирования с ним.
Прежде всего, нужно написать несколько юнит-тестов. Сначала они не должны быть идеальными. Просто научите себя, как тестировать небольшие блоки кода и как использовать макеты для изоляции компонентов.
Это самый большой тайм-аут, но, безусловно, самый большой выигрыш. Как только вы заметите, что вам больше не нужно пролистывать 14 веб-страниц, чтобы перейти к той, которую вы хотите протестировать, вы поймете, о чем я говорю.
Для меня большим моментом Eureka было приложение для Windows, где я пытался протестировать регулярное выражение, которое требовало от меня заполнить две формы, прежде чем я смог добраться до него. Я установил NUnit и написал тест для этого метода и увидел, как быстро я сэкономил часы тестирования. Затем я добавил больше тестов для решения крайних случаев. И так далее.
Тогда научитесь хорошо писать модульные тесты. Узнайте баланс между хрупкими тестами, которые можно быстро написать и написать множество индивидуальных тестов. Это довольно просто. Урок заключается в том, что в идеале каждый тест проверяет только одну вещь, но вы быстро узнаете, сколько времени это занимает, поэтому вы начинаете немного сгибать правило, пока не напишите тест, который ломается при каждом изменении кода, а затем вы возвращаетесь к правильному балансу. (который ближе к первому, чем ко второму).
Как я уже сказал, TDD - это серьезный психологический сдвиг в вашей работе. Тем не менее, это не займет много времени в процессе разработки, если вы уже пишете тесты. И я обещаю, что вы увидите, как ваш стиль кодирования улучшится на ваших глазах. Или, скорее, если вы не бросите его, это не для вас.
И последнее, что нужно иметь в виду, это то, что TDD не ограничивается модульными тестами Приемлемый дизайн, управляемый тестами, является частью TDD. Еще одна веская причина не смешивать их в своем уме.