Подтвердить что ты не робот

Как узнать TDD с Ruby?

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

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

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

4b9b3361

Ответ 1

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

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

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

Помните:

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

Ответ 2

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

Ответ 3

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

Ответ 4

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

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

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

Я бы начал практику с совершенно нового проекта, желательно, боковая линия, где вы можете двигаться медленнее. Будьте очень строги - весь код должен быть написан в результате неудачного теста. Вспомните третью часть мантры "red-green-refactor" - вы скоро столкнетесь с бедой без нее (поверьте мне, я был там).

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

Ответ 5

Я все же рекомендую TDD by Example от Kent Beck. Это легкое чтение и дает вам все основы.

Ответ 6

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