Два партера с быстрым вступлением. Intro: Я прихожу к Ruby из Perl, и я немного потерян среди вариантов тестовых рамок. Я понимаю, что, вероятно, нет единого, универсального лучшего выбора, но я не могу даже получить четкое представление о игровом поле.
Итак, во-первых, MiniTest или Test:: Unit? Я только понял, что 1.9.1 по умолчанию стоит MiniTest. Я не заметил, так как все старые обучающие программы Test:: Unit все еще работают нормально. Если вы require test/unit
, вы фактически получаете MiniTest в качестве эмулятора Test:: Unit (!). Моя первоначальная мысль состояла в том, чтобы пойти с выбором MiniTest по умолчанию (как только я это понял), но даже очень недавние книги, похоже, не заинтересованы в его обучении. Ruby Best Practices говорит: "Между ними существуют существенные различия", но он решил не заниматься с ними. Он также выполняет все свои тесты через Test:: Unit (плюс некоторые пользовательские дополнения). У нового Pickaxe также очень мало о MiniTest как таковом, и в главе по тестированию они также используют версию эмуляции Test:: Unit MiniTest. Чтобы прояснить мой первый вопрос, стоит ли: MiniTest - это бедный первый вариант? Должен ли я по умолчанию использовать эмулятор Test:: Unit?
Во-вторых, помимо встроенных параметров есть Rspec, Cucumber и компания для тестов, управляемых поведением. Является ли сообщество сильно склоняющимся к этому стилю и этим рамкам? Должен ли я начинать с Rspec?
Я сыграю немного со всеми тремя, но мне любопытно узнать, какой консенсус (если есть) формируется вокруг тестирования в Ruby 1.9.
(Быстрое наблюдение, как напоминание для меня и для всех, кто интересуется. См. эту ссылку для полезного обзора различных вызовов для теста:: Unit и MiniTest в разных рубинах от 1.8 до 1.9.1.)