2014-10-13 1 views
1

Я погружаюсь в мир TDD для разработки iOS. Много читал, наблюдал за некоторыми скринкастами и в целом убеждал себя в возможности TDD. Но мне не хватает опыта, поэтому я только начал с небольшого проекта.Принял у меня два часа на TDD код, который должен был пройти полчаса. Это нормально?

Дело в том, что для написания кода с TDD требуется больше времени, чем без него. Для простой функциональности, которая заняла бы меня полчаса, я почти двухчасово сражался. Я получаю преимущество от проведения тестов и обертывания головы вокруг функциональности высокого уровня, как ясно объяснено here.

Но я беспокоюсь, что это то, что меня укусит, если я не улучшусь. Кроме того, я начал писать тесты с Kiwi, и мне потребовалось немного, чтобы привыкнуть к его нотации. Я заметил, что потратил довольно много времени на то, чтобы выяснить, как правильно использовать тестовый код wirte/refactor со спецификациями, а не только с производственным кодом. Фактически, большую часть времени я работал с кодом тестов из-за некоторой спецификации, которую я не использовал правильно, или макета, который я не должен был использовать, и так далее. Я считаю, что это очень полезно, но, возможно, моя голова вокруг тестов. И киви слишком много?

По вашему опыту, улучшается ли это? Заранее спасибо.

+0

Это не по теме для StackOverflow. Это _may_ будет по теме на http://programmers.stackexchange.com. – CrimsonChris

ответ

1

Вам необходимо понять преимущества, а затем принять решение о правильном балансе.

Вы будете лучше использовать киви или любой другой инструмент, чем больше вы его используете.

Вам потребуется больше времени, чтобы подготовить вашу функцию, если вы пишете тесты. Они могут быть очень трудоемкими. Они будут, если они будут правильно написаны, докажут, что проверенный код работает. Это огромная прибыль от QA и поможет вам в будущем использовать один и тот же код, сокращая количество проблем.

Вы также защищаете код от будущих изменений. Перерыв будет стоить много времени на инвестиции в будущем, и ваши модульные тесты будут там, защищая рабочие функциональные возможности.

Письменные тесты сначала также дают ваш код фактическому потребителю - это поможет вашим пятном недостаткам в использовании и интерфейсе.

Удачи вам!