Как научиться TDD с Ruby? - PullRequest
       20

Как научиться TDD с Ruby?

24 голосов
/ 07 февраля 2011

Я использую ruby ​​исключительно около месяца, и мне это очень нравится.Тем не менее, мне невероятно трудно использовать или даже изучать TDD.Мой мозг просто так не функционирует ...

Я действительно очень хочу выучить TDD, но, честно говоря, я немного сбит с толку.Все статьи, которые я нахожу при поиске в Google, в основном относятся к Rails, что мне не интересно, потому что я хочу научиться проводить эффективное тестирование для любого приложения ruby, от простого однофайлового скрипта до сложного гема, а не дляВеб-приложения.Кроме того, существует так много фреймворков и так мало учебных пособий для начала.

Может ли кто-нибудь дать мне какой-нибудь совет о том, как изучать TDD, чтобы я мог хотя бы начать считать себя начинающим рубиистом?

Ответы [ 7 ]

15 голосов
/ 07 февраля 2011

Попробуйте RubyKoans .

11 голосов
/ 07 февраля 2011

Лучший способ изучить TDD - просто сделать это. Я предлагаю вам построить новый проект с использованием TDD. Это означает, что не пишите не тестирующий код, если у вас нет провального теста .

Это заставит вас задуматься о написании тестов: я хочу написать этот код, как мне написать тест для него, чтобы я мог написать его.

Он покажет вам многоуровневый характер тестирования. Вместо того, чтобы хотеть имя, которое требуется и не может содержать числа. сначала вы протестируете настройку и прочитаете имя, протестируете нужное имя, протестируете, что оно не должно содержать чисел, чем подумаете, если у него больше ограничений, и протестируйте их.

Помните:

  • Напишите тест, прежде чем писать код
  • Убедитесь, что тест не пройден! Важно знать, что вы тестируете правильную логику
  • Перед написанием следующего теста убедитесь, что все тесты выполнены успешно
  • Вы всегда можете очистить свой код, если тесты продолжают работать, вы не изменили дизайн
5 голосов
/ 07 февраля 2011

Сложно разобраться с TDD (и BDD), но книга RSpec Book - BDD мне очень помогла. Разработка, основанная на поведении, - это не то же самое, что разработка TDD, но она близка, и вы должны думать подобным образом.

3 голосов
/ 07 февраля 2011

Я все еще рекомендую TDD на примере от Кента Бека.Это легко читается и дает вам все основы.

3 голосов
/ 07 февраля 2011

Один тест за раз.Это единственный секрет, остальное - просто практика, хотя вам нужно выполнить лот практики; -)

У вас уже достаточно для начала: у Ruby есть test/unit библиотека, которой вполне достаточно для начала.

Попробуйте Googling для Ruby test/unit и Ruby TDD.Я нашел несколько полезных отправных точек: здесь и здесь .

Я бы начал тренировку с совершенно нового проекта, предпочтительно с побочной, где вы 'Поначалу мы можем прогрессировать медленнее.Будьте действительно строги - весь код должен быть написан в результате неудачного теста.Вспомните третью часть мантры «красно-зеленый-рефакторинг» - у вас скоро будут проблемы без нее (поверьте мне, я был там).

Как только вы почувствуете, что начинаете становитьсяосвоитесь с техникой (один признак может заключаться в том, что вы заметили, что у вас больше нет цикла code-test-debug), затем начните искать некоторые альтернативы: rspec является основной, нодругие ( riot , minitest по умолчанию для Ruby 1.9, если вы используете 1.8.x)

1 голос
/ 08 апреля 2014

Я согласен с ответами о чтении Кента Бека «TDD by Example» и о наличии реального проекта, в котором вы заставляете себя делать это.Модульные тесты Сначала полезно как справочник по Ruby.

1 голос
/ 07 февраля 2011

Мне лично показалось, что скринкаст Peepcode RSpec очень полезен, он дает вам хорошее представление о том, что нужно тестировать, и позволяет быстро начать работу с RSpec.Мне понадобилось некоторое время, чтобы начать работать с TDD, но оно того стоит!

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