Каковы некоторые распространенные заблуждения о TDD?

Вы можете использовать атрибут accept, доступный для типов входных файлов. Оформление документации MDN

11
задан Community 23 May 2017 в 12:08
поделиться

5 ответов

Я чувствую, что принятый ответ был одним из самых слабых (Недостатки Разработки через тестирование?), и больше всего-modded ответ пахнет кем-то, кто мог бы переписывать указанные тесты.

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

TDD является инвестициями. Я нашел, что, после того как я был полностью в TDD, время, которое я потерял, очень очень мало, и во сколько я действительно проигрывал, был больше, чем составлен, когда он прибыл в maintence время.

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

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

Иногда Вы дизайн не является четким в запуске и развивается, поскольку Вы продвигаетесь - это вынудит Вас восстановить свой тест, который генерирует достижение, проигрывают. Я предложил бы отложить модульные тесты в этом случае, пока Вы не имеете некоторое схватывание дизайна в виду.

Это - худшая точка их всех! TDD должен действительно быть "Тестом Управляемый Дизайн". TDD о дизайне, не тестируя. Чтобы полностью понять значение преимуществ TDD у Вас есть диск игрушки Ваш дизайн от Ваших тестов. Таким образом, необходимо восстанавливать производственный код для создания тестовой передачи, не наоборот, как эта точка предполагает

Теперь в настоящее время большая часть upmodded: Недостатки Разработки через тестирование?

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

Как принятые ответы сначала указывают, это походит по спецификации в тестах и общем отсутствии понимания процесса TDD. При внесении изменений запустите с теста. Измените тест для того, что новый код должен сделать, и вносить изменение. Если то изменение повреждает другие тесты, то Ваши тесты делают что их воображаемое сделать, перестав работать. Модульные тесты, для меня, разработаны для сбоя, следовательно почему КРАСНАЯ стадия является первой, и никогда не должна пропускаться.

13
ответ дан 3 December 2019 в 06:23
поделиться

По моему скромному мнению, самое большое неправильное представление о TDD состоит в том что: время, проведенное при записи и рефакторинге тестов, было бы потерянным временем. Взгляды идут как "да, набор тестов хорош, но функция была бы завершена намного быстрее, если бы мы просто кодировали его".

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

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

5
ответ дан 3 December 2019 в 06:23
поделиться

Это вопросы, которые, по-моему, довольно спорны и следовательно подвержены недоразумению:

  • По моему опыту, самое большое преимущество производит намного лучший код за счет большого количества времени, проведенного при записи тестов. Таким образом, это действительно стоит для проектов, которые требуют высокого качества, но на некотором другом, меньше качества центральные сайты, дополнительное время не будет стоить усилия.

  • Люди, кажется, думают, что только главное подмножество функций должно быть протестировано, но это на самом деле неправильно, по моему скромному мнению. Необходимо протестировать все для теста, чтобы быть допустимыми после рефакторинга.

  • Большой недостаток TDD является ложным чувством защищенности, данной неполными тестами: я видел, что сайты понижаются, потому что люди предположили, что Поблочного тестирования было достаточно для инициирования развертывания.

  • Нет никакой потребности насмешки платформ, чтобы сделать TDD. Это - просто инструмент для тестирования некоторых случаев более легким способом. Лучшие модульные тесты, хотя запущены высоко в стеке и должен быть агностик на слоях в коде. Тестирование одного слоя за один раз бессмысленно в этом контексте.

0
ответ дан 3 December 2019 в 06:23
поделиться

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

Другое экстремальное значение - то, что люди прекращают делать приемочные испытания и думают что, потому что они делают поблочное тестирование, их код тестируется. Это - снова неверное толкование функции модульного теста. Вам все еще нужны какие-то приемочные испытания.

1
ответ дан 3 December 2019 в 06:23
поделиться

Неправильное представление, которое я часто вижу, состоит в том, что TDD гарантирует хорошие результаты.

Часто тесты времен списаны дефектных требований, и поэтому, разработчики производят продукт, который не делает то, что ожидает пользователь. Ключ к TDD, по-моему, работает с пользователями для определения требований, помогая управлять их ожиданиями.

0
ответ дан 3 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: