TDD: фокус Поблочного тестирования

TDD мог быть ориентирован на другой вид тестирования отличающегося от поблочного тестирования?

7
задан jaco0646 13 November 2018 в 15:33
поделиться

6 ответов

Следует использовать raw последовательностей , а затем можно написать @ «106-1190 Crescent St\r\nToronto\r\nV2K 2Z6» . Это приводит к обработке литерала последовательности без языковой интерпретации, поэтому «\n » остается «\n» .

Аналогично, чтобы назначить строку из переменной, используйте:

Address.Text = @Employee.Address;

Edit: Я также согласен с теми, кто сказал, чтобы вызвать String.Replace («\\r\\n », Environment.NewLine); . Это более независимое от платформы решение, чем замена его на «\r\n » и такие методы, как Console.WriteLine () , в любом случае добавляют Environment.NewLine вместо жестко закодированного «\n» . См. раздел Запись MSDN в Environment.NewLine .

-121--4268435-

После ответа Морона необходимо запустить Process Monitor .

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

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

-121--3842616-

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

4
ответ дан 6 December 2019 в 15:21
поделиться

Behavior-Driven Development (BDD) применяет идеи TDD на уровне интеграционного тестирования и функционального тестирования.

3
ответ дан 6 December 2019 в 15:21
поделиться

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

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

2
ответ дан 6 December 2019 в 15:21
поделиться

Конечно ДА. TDD полагается на автоматизированные тесты, которые ортогональны «типу» тестов.

2
ответ дан 6 December 2019 в 15:21
поделиться

Цикл рефакторинга «красный-зеленый» TDD должен быть быстрым, очень быстрым. Быстрая обратная связь держит вас в тонусе. Я видел подходы к TDD, в которых история описывается полностью, выражается в виде теста, а затем ведется разработка, чтобы пройти этот (крупномасштабный) тест. Номинально это TDD (или, может быть, BDD), но мне это кажется неправильным. Крошечные шаги, модульные тесты - вот как я изучил TDD, как я его думаю и как он лучше всего работает для меня.

3
ответ дан 6 December 2019 в 15:21
поделиться

Мы разрабатываем рамку распределенной синхронизации с открытым исходным кодом, которая в настоящее время включает блокировку ReentingLock и блокировку ReentingReadWrite, но все еще находится на стадии тестирования и рефакторинга. В нашей архитектуре ключи блокировки определяются в ведрах, и каждый узел является резонансным для определенного количества ведер. Таким образом, для успешных запросов блокировки существует только один сетевой запрос. Мы также используем класс AbstractQueuedSynchronizer в качестве локального состояния блокировки, поэтому все неудачные запросы блокировки обрабатываются локально, что резко уменьшает сетевой трафик. Мы используем JGroups ( http://jgroups.org ) для групповой связи и Hessian для сериализации.

для получения подробной информации см. http://code.google.com/p/vitrit/ .

Пожалуйста, отправьте мне ваш ценный отзыв.

Камрань

-121--1011363-

Посмотрите на анализатор зависимости модуля Modelmaker . Это может дать вам больше, чем вы хотите, и его бесплатно.

-121--3832429-

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

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

Другим примером является проект, основанный на scrum. На совещании по планированию обсуждаются/создаются/имеют пользовательские истории, которые впоследствии разрабатываются во время спринта. Эти истории пользователей на самом деле могут быть тестами UAT.

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

0
ответ дан 6 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

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