Я использую capybara / rspec / cucumber и pickle для согласования, чтобы минимизировать фактическое количество определений шагов, которые я должен написать, и, как правило, оно выполняет свою работу.
Pickle делает шаги, такие как «Учитывая, что модель существует с», автоматически доступными, веб-шаги Capybara заботятся об автоматизации браузера, такие как «goto route», или также предоставляют функции css и xpath для проверки вывода с помощью таких шагов, как « содержать "и т.д ....
Таким образом, вы можете протестировать весь свой стек, что является своего рода точкой огурца
Мое личное мнение таково, что огурец является языком, специфичным для предметной области, и поэтому не всегда может описать, что вы пытаетесь сделать в сжатой форме. (думаю, сложные объектные отношения). Если у вас есть нетехнические пользователи, которым нужно читать ваши тесты, то это довольно хорошо, но в остальном он не превосходит простой rspec.
Твои шаги с огурцом тоже немного изогнуты. «Данный» описывает ранее существовавшие условия, а не ваши цели. «Когда» должно описывать действия, которые вы предпринимаете для создания пользователя, а «Затем» должно проверять, что предпринятые действия повлияли на вашу цель.