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

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

Ответы [ 4 ]

31 голосов
/ 07 августа 2008

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

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

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

3 голосов
/ 07 августа 2008

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

2 голосов
/ 07 августа 2008

Преимущества

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

Начало работы

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

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

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

0 голосов
/ 07 августа 2008

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

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