Существует ли различие между TDD и Тестом Первая Разработка (или Тестом, Сначала Программируя)?

string strData = "This is much easier"
int intDelimiterIndx = strData.IndexOf("is");
int intDelimiterLength = "is".Length;
str1 = strData.Substring(0, intDelimiterIndx);
str2 = strData.Substring(intDelimiterIndx + intDelimiterLength, strData.Length - (intDelimiterIndx + intDelimiterLength));
53
задан Thomas Owens 2 December 2008 в 17:33
поделиться

5 ответов

Существует различие в терминах того, каков ведущий фактор.

у Вас есть смутное представление о том, на что класс (или система - это может произойти в различных масштабах, конечно) должен быть похожим, затем продумать тесты, которые дают ему фактическую форму? Это - TDD.

Вы знаете точно, чем общедоступный API класса должен быть, и просто записать тесты перед реализацией? Это - тест первая разработка.

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

Другими словами, TDD запускает с, "Какие вопросы я хочу задать?" тогда как не-TDD (ли тест сначала или не) запускает с, "Какой ответ я хочу дать?"

62
ответ дан Jon Skeet 7 November 2019 в 18:31
поделиться

Они - в основном различные имена, описывающие то же самое - хорошо, на самом деле пять имен, поскольку последний D может обозначать Дизайн, а также Разработку.

Тест Сначала был термином, использованным первоначально, особенно в контексте Экстремального программирования, для test-code-refactor цикла. Имя Разработка через тестирование было предложено - и быстро взято - позже, для выделения того, что TFD - и всегда был - больше стратегии проектирования, чем стратегия тестирования.

у, Очевидно, сегодня некоторых людей есть различные коннотации для тех двух условий, но это не было намерением позади их существования, и я не буду полагаться на него быть общеизвестное (потому что это не). На самом деле я видел бы термин TFD, как удержавший от использования.

23
ответ дан Ilja Preuß 7 November 2019 в 18:31
поделиться

TDD = TFD + Рефакторинг.

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

11
ответ дан Santosh Gokak 7 November 2019 в 18:31
поделиться

Они - точно то же самое. Обе ссылочных записи тестируют сначала, затем пишущий код, который пройдет тест

1
ответ дан Matt Briggs 7 November 2019 в 18:31
поделиться

TDD (Разработка через тестирование) является Тестом Первая Разработка/Программирование, хотя я видел и услышал, что TDD раньше означал создавать персистентные, повторяемые модульные тесты (даже после кода), но действительно это подразумевает, что тесты записаны перед кодом они тестируют.

1
ответ дан Jim Anderson 7 November 2019 в 18:31
поделиться
Другие вопросы по тегам:

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