Почему RSpec так популярен

Я использовал оба в течение многих лет. Но я использую RSpec во всех своих новых проектах:

RSpec — это приложение, а Minitest — всего лишь библиотека

Снимок экрана 23 марта 2019 г., 12:59:49.png

Это невозможно переоценить. У RSpec, конечно, тоже есть библиотеки, но взаимодействие с пользователем через зрелая программа CLI. (Разделить пополам злой и спасающий жизнь!) Он имеет невероятно полезные опции и функции, которые описаны так, как вы ожидаете, через --help вариант. Но поскольку Minitest — это всего лишь библиотека, ему нужно что-то еще, чтобы запустить его. Обычно это Рейк. Результат: пользовательский опыт далеко не так хорош, потому что Rake — это просто средство для выполнения задач. Простые функции, такие как «выполнить все тесты», требуют специального кодирования Rake DSL.. (!)

RSpec имеет невероятную, автоматически сгенерированную документацию

Снимок экрана 23 марта 2019 г., 1.10.22.png

Покопайтесь в документы прямо из огурца, и вы будете впечатлены удобочитаемостью. Там полно примеров! На самом деле у каждой функции есть пример, потому что это грамотный код. Я никогда не находил ресурсов Минитеста, которые были бы близки. И лично, когда я использую фреймворк — Minitest или RSpec — со своим собственным уникальным DSL и практиками, хорошая документация имеет решающее значение.

RSpec имеет первоклассную поддержку синтаксиса спецификации

Снимок экрана 23 марта 2019 г., 1.03.10.png

Это единственный синтаксис, и им приятно пользоваться. Это общепринятый язык тестирования: мои тесты на Ruby выглядят точно так же, как мои тесты на Haskell. Теперь Minitest имеет синтаксис спецификации вариант. И он не поддерживается так же хорошо, как стандартный синтаксис минитеста. Технические характеристики Minitest: еще более примитивно чем стандартные документы. (Обратите внимание, что они на самом деле не задокументированы — они просто ссылаются на эквивалентную функцию Minitest. Поэтому вам нужно прыгать туда-сюда и изучать другой синтаксис, даже если вы его не используете.)

RSpec из коробки имеет все функции, необходимые рабочему разработчику.

Снимок экрана 23 марта 2019 г., 1.05.09.png

И поэтому все они являются ключевыми для проекта, и все они имеют первоклассную поддержку. Сторонники Minitest скажут, что для любой функции RSpec есть плагины, и они перечислены в README. Однако, когда я проверил это, я обнаружил этот список больше похож на кладбище, чем на верфь. Многие (большинство?) были старыми или сломанными. Найти тех, кто в хорошей форме, было бы новой задачей для меня. И тогда, конечно, есть риск, что любой из них может перестать поддерживаться в любой момент.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *