Вы были в случаях, где TDD увеличил время разработки?

Я читал TDD - Как начать действительно думать TDD? и я заметил, что многие ответы указывают, что тесты + приложение должны занять меньше времени, чем просто запись приложения. По моему опыту, это не верно. Моя проблема, хотя то, что приблизительно 90% кода я пишу, имеет ТОННУ вызовов операционной системы. Время, проведенное для фактического копирования этих взятий намного дольше, чем просто написание кода во-первых. Иногда в 4 или 5 раз более длинный для записи теста, для написания фактического кода.

Мне любопытно, если существуют другие разработчики в этом своего рода сценарий.

5
задан 2 revs 23 May 2017 в 10:27
поделиться

4 ответа

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

1
ответ дан 15 December 2019 в 00:56
поделиться

Вам не обязательно достигать 100% покрытия кода. Если фрагмент кода представляет собой простую оболочку для вызова ОС, тогда должно наступить время, когда вы предполагаете, что вызов ОС будет делать то, что должен делать (т. Е. Вам не нужно вызывать простую оболочку).

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

Вам просто нужно сосредоточить свои усилия на элементах, которые дадут вам максимальную отдачу от вложенных средств.

0
ответ дан 15 December 2019 в 00:56
поделиться

К сожалению, это НЕ зависит от языка. На должным образом подменяемых языках (мой опыт работы с Perl) издевательство над ВСЕМ, включая системные вызовы, при наличии надлежащей имитирующей библиотеки ОЧЕНЬ дешево, быстро и легко.

-1
ответ дан 15 December 2019 в 00:56
поделиться

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

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

Кроме того, вещь с ОС не так важна, как подразумевает Джоэл: макетируйте ОС, чтобы вы могли написать свои сложные использования вызовов ОС, но не утруждайте себя тестированием ОС, если у вас нет причин, по которым вам нужно вызвать предположение в качестве теста.

4
ответ дан 15 December 2019 в 00:56
поделиться
Другие вопросы по тегам:

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