Почему я должен практиковать разработку через тестирование и с чего начать?

Многие люди говорят о написании тестов для своего кода, прежде чем они начнут писать свой код. Эта практика обычно известна как Test Driven Development или TDD для краткости. Какие преимущества я получаю от написания программного обеспечения таким образом? Как мне начать с этой практики?

7.08.2008 02:27:03
Пожалуйста, смотрите мой ответ на тот же вопрос, который уже задавали.
eroijen 16.09.2008 04:06:41
Я опоздал сюда, но я хотел бы поставить свой байт. Лучший подход к практике TDD - использование Katas. Вот хорошие каты с тестами: github.com/garora/TDD-Katas
Gaurav Aroraa 26.06.2015 14:14:44
Ответ @ UlaKarzelek от 2010 года появился в обзоре и, вероятно, будет удален как «только для ссылок». Это ссылка на Vimeo, которая, кажется, все еще доступна: Начало работы с Tdd в Java с использованием Eclipse Бретта Л. Шухерта
tevemadar 6.11.2018 10:02:23
4 ОТВЕТА
РЕШЕНИЕ

Есть много преимуществ:

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

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

32
18.05.2011 09:41:18
ссылка на последнюю статью (Советы по модульному тестированию) устарела. Вот ссылка на новую статью: devver.wordpress.com/2008/07/07/tips-for-unit-testing
Igor Popov 30.06.2010 19:56:48

Часть преимуществ недавно была покрыта , как с того, с чего начать .... в системе малого предприятия, где не так много неизвестных, поэтому риски низки. Если вы еще не знаете среду тестирования (например, NUnit), начните с изучения этого. В противном случае начните писать свой первый тест :)

3
23.05.2017 12:10:31

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

0
7.08.2008 02:32:38

Выгоды

  1. Вы выясняете, как разделить ваш код
  2. Вы точно понимаете, что вы хотите, чтобы ваш код делал
  3. Вы знаете, как это должно действовать, и в будущем, если рефакторинг что-то сломает
  4. Получает у вас привычку убедиться, что ваш код всегда знает, что он должен делать

Начиная

Просто сделай это. Напишите контрольный пример того, что вы хотите сделать, а затем напишите код, который должен пройти тест. Если вы успешно пройдете тест, вы можете приступить к написанию случаев, когда ваш код всегда будет терпеть неудачу (например, 2 + 2 не должно равняться 5).

Как только все ваши тесты пройдены, напишите свою реальную бизнес-логику, чтобы делать то, что вы хотите.

Если вы начинаете с нуля, убедитесь, что вы нашли хороший набор тестов, который прост в использовании. Мне нравится PHP, поэтому PHPUnit или SimpleTest работают хорошо. Практически на всех популярных языках есть набор тестов xUnit, помогающий создавать и автоматизировать тестирование.

2
7.08.2008 02:34:05
Кстати, «разделить ваш код» приведет вас к очень хорошей архитектуре «бесплатно». Когда вы разбиваете ваш код на части, чтобы проверить его, вы получаете лучшую архитектуру. Это совершенно бесплатно, если у вас есть небольшой опыт работы в качестве архитектора программного обеспечения.
daitangio 19.04.2011 15:44:11