Написание спецификаций для Ruby Gem с огурцом - PullRequest
2 голосов
/ 04 февраля 2012

Я разрабатываю гем Ruby, который предназначен для использования в качестве библиотеки или API (без CLI) для другого приложения Ruby / Rails.

Я планировал использовать Cucumber / Rspec для разработки этого гемаиспользование снаружи в понятиях BDD.Перед написанием функций Cucumber я провел некоторое исследование и обнаружил, что Cucumber в основном используется для указания пользовательского интерфейса гемов, а не для определения API.Дайте мне знать, какие инструменты вы будете использовать для такой ситуации и как вы будете ее использовать.

1 Ответ

4 голосов
/ 04 февраля 2012

Обычно спецификации Cucumber охватывают сценарии использования вашего программного обеспечения высокого уровня, а RSpec - интерфейс ваших классов на более низком уровне.

Cucumber полезен, если вы хотите, чтобы нетехнический клиент / владелец продукта помог вам написать приемочные тесты - с помощью Cucumber вы создаете для них удобочитаемый DSL.

Поскольку клиенты вашей программы (gem) являются программистами, и вы не предоставляете никакого пользовательского интерфейса (только API), вы можете использовать RSpec и не добавлять Cucumber. Спецификации RSpec будут охватывать все публичные методы вашего API и предоставят хорошую спецификацию для гема.

Если вы хотите охватить сложный сценарий использования вашего продукта (когда пользователь вызывает несколько методов для достижения результата), может быть полезно добавить спецификацию Cucumber, но вы также можете написать высокоуровневые тесты с помощью RSpec.

Резюме: Для драгоценного камня разработки Огурец выглядит как излишнее, и я бы начал только с RSpec.

...