Есть ли в RSpec эквивалент «Сценариям» Cucumber, или я неправильно использую RSpec?

Я впечатлен краткостью и полезностью сценариев Cucumber, это отличный способ протестировать множество различных случаев.

например пример сценария Cucumber

Feature: Manage Users
In order to manage user details
As a security enthusiast
I want to edit user profiles only when authorized

Scenario Outline: Show or hide edit profile link
  Given the following user records
    | username | password | admin |
    | bob      | secret   | false |
    | admin    | secret   | true  |
  Given I am logged in as "" with password "secret"
  When I visit profile for ""
  Then I should 

  Examples:
    | login | profile | action                 |
    | admin | bob     | see "Edit Profile"     |
    | bob   | bob     | see "Edit Profile"     |
    |       | bob     | not see "Edit Profile" |
    | bob   | admin   | not see "Edit Profile" |

(Код взят из Еще Райана Бейтса о скринкасте Cucumber )

Есть ли эквивалент в RSpec?

Я бы хотел сделать то же самое в RSpec и СУШИТЬ свой код, уменьшив различные тесты вплоть до строки в таблице сценария.

Хотя я мог бы написать код, чтобы сделать это сам, тот факт, что я рассматриваю это, заставляет меня задуматься над двумя вещами

  1. Если это полезно, оно, вероятно, уже существует, и в таком случае как мне его использовать?

  2. Если его не существует, это предполагает, что этого делать не следует и что я подхожу к проблеме неправильно, master: измените foo.c и переименуйте его в bar.c task001: изменить foo.c и переименовать его в moo.c merge task001 ...

    Я хотел бы знать, как вы справляетесь с такой ситуацией в Git:

    • создайте ветку task001 из master
    • master: измените foo.c и переименуйте его в bar.c
    • task001: измените foo.c и переименуйте его в moo.c
    • объедините task001 в master

    Git сообщает мне следующее:

    CONFLICT (rename/rename): Rename "foo.c"->"bar.c" in branch "HEAD" rename "foo.c"->"moo.c" in "task001"
    Automatic merge failed; fix conflicts and then commit the result.
    

    Как мне решить эту проблему? Я имею в виду, что я все еще хочу объединить два файла после разрешения конфликта имен.

    Спасибо.

13
задан pablo 18 January 2011 в 22:51
поделиться