Как сделать TDD в Visual Studio менее болезненным? - PullRequest
1 голос
/ 11 августа 2009

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

"Когда я пишу свои начальные тесты, я ненавижу, как Visual Studio intellisense пытается угадать, что я делаю. Это, очевидно, будет неправильно, потому что я не API написано еще. Это выводит меня контекста, когда я должен исправить все вещи, которые Intellisense угадал неправильно. "

, который, к сожалению, часто звучит как:

"TDD (или Visual Studio) отстой"

Раньше меня это никогда не беспокоило (я просто удаляю то, что он угадывает неправильно), но я вижу проблему. Что все остальные сделали, чтобы обойти эту проблему? Очевидные ответы:

  1. Отключите intellisense при написании тестов, затем включите его снова при написании API.
  2. Напишите свои тесты во что-то вроде Notepad ++, а затем скопируйте в VS, когда вы считаете, что вы счастливы
  3. Хватит ныть

P.S. Я искал этот вопрос повсюду в SO (и в других местах), поэтому не стесняйтесь отмечать его как дубликат, если я его пропустил ... Как будто вам нужно мое разрешение; Редактировать: И, да, у меня есть Resharper, это круто.

Ответы [ 5 ]

5 голосов
/ 11 августа 2009

Научитесь использовать клавишу Esc и начните думать о том, что вы программируете. Intellisense - это двойной меч, который ускоряет кодирование, но также заставляет людей перестать думать о том, что они делают. TDD - это все о мышлении, а не о том, что IDE может сделать вашу работу за вас. Когда появится небольшое всплывающее окно Intellisense, просто нажмите Esc, и оно исчезнет, ​​ничего не заполнив.

Кроме того, получите Решарпер. Это абсолютно обязательно для программирования в Visual Studio, но вдвойне для TDD.

(Кстати, Visual Studio сосет).

5 голосов
/ 11 августа 2009

Научитесь игнорировать Intellisense и получите ReSharper. Затем напишите нужный код и дайте ReSharper создать оболочки, в которых вы в конечном итоге создадите свой код реализации.

3 голосов
/ 11 августа 2009

Э-э ... Поправьте меня, если я ошибаюсь, но лично мне нравится intellisense при анализе кода на лету. Особенно в сочетании с Resharper это делает TDD очень увлекательным процессом. Вы пишете тест с еще не определенными классами и методами, затем чрезвычайно быстро генерируете заглушки с помощью Resharper, компилируете его, затем добавляете функциональность до того момента, когда ваш тест выполняется успешно, затем вы реорганизуете при необходимости, промываете и повторяете.

0 голосов
/ 04 июля 2015

И если ваша компания хочет, пусть они купят расширение NCrunch для вас, ребята. Если нет, попробуйте убедить их. Это параллельный тестовый прогон, и он сокращает традиционное время TDD вдвое (для меня). Не нужно возвращаться и запускать тест после написания реализации или получать то, что исключение (утверждать исключения) прямо в редакторе, и сразу же получать отзывы, когда вы пишете свой код, просто потрясающе! Я думаю, что этот инструмент значительно упрощает переход на TDD. Я чувствую, что TDD с подходом RGR довольно утомителен и отнимает много времени (без NCrunch), хотя это того стоит. Как говорит Джоэл Тест, «покупай лучшие инструменты, которые можно купить за деньги» (я знаю, что утверждение бюджета компании - это еще одна утомительная вещь).

0 голосов
/ 11 августа 2009

Временно отключить Intellisense.

Из меню это: Инструменты..Опции..Текстовый редактор и затем отключите «Члены автоматического списка» и «Информация о параметре».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...