Как узнать TDD с Ruby?
Я использую рубин исключительно в течение месяца, и мне это очень нравится. Тем не менее, мне очень сложно использовать или даже изучать TDD. Мой мозг просто не работает таким образом...
Я действительно, действительно хочу узнать TDD, но, честно говоря, я немного смущен. Все статьи, которые я нахожу, когда Googling вокруг, в основном, относятся к Rails, что мне не интересно, потому что я хочу узнать, как эффективно тестировать любое рубиновое приложение, от простого однофайлового script до сложного драгоценного камня, а не для веб-приложений. Кроме того, для начала работы существует так много фреймворков и так мало учебников.
Может ли кто-нибудь дать мне какие-либо советы о том, как изучать TDD, чтобы я мог хотя бы начать считать себя ругателем-претендентом?
Ответы
Ответ 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, но это того стоит!
Ответ 7
Я согласен с ответами на чтение "TDD by Example" Кентом Бек и о том, что у меня есть настоящий проект, в котором вы вынуждаете его делать.
Вы также можете найти Назад к основам: Написание тестов устройств Сначала полезно как ссылка на Ruby.