2014-01-20 2 views
0

Я хотел бы использовать примеры в приведенном ниже коде в строке "When I sign up with the following information" без указания каждого отдельного параметра и без необходимости повторять таблицу в примерах.Пример повторного использования огурца

Возможно ли это?

Scenario Outline: signing up a user that already exists 
    Given I am registered as "<username>" with password "<password>" 
    When I sign up with the following information 
    Then I should be on the sign up page 
    And I should see "user already registered" 
    Examples: 
     | email  | username | name  | password | password_confirmation | city  | mobile_numbers | 
     | [email protected] | existent | some user | temp123  | temp123     |  foobar | 70 707070  | 

ответ

0

При создании папки огурца проекта, структура будет содержать файл рубин под названием env.rb в каталоге поддержки внутри папки функций (наряду с папкой step_definitions). Здесь вы можете определить свои методы, переменные и т. Д., Которые будут служить общим источником для всех ваших других тестов внутри одного и того же проекта.

Поскольку Cucumber является камнем Ruby, данные определяются в формате Ruby. Вы можете определить их как методы или переменные. Я предпочитаю определять их как методы (в ruby, методы возвращают их последнюю строку). Так что ваши методы будут выглядеть

def email 
     "[email protected]" # returns this when email is called 
    end 

    def username 
     "existent" 
    end 

и так далее ...

Вы можете оптимизировать его в соответствии с вашими потребностями. Вы будете называть их в своих файлах ste_definition так же, как и любая нормальная рубиновая функция.

+0

Возможно, я не очень хорошо объяснил ... Я хотел бы использовать таблицу ниже. Примеры: в строке «Когда я регистрирую следующую информацию». Я хотел посмотреть, возможно ли это, если вы не сделаете что-то вроде: «Когда я зарегистрирую следующую информацию:« »,« »,« »,« »... – Abdo

+0

В этом случае, вы хотели бы создать метод в Ruby в env.rb, который будет иметь все эти значения внутри него, и вы вызовете эту функцию в файле step_definition. Таким образом, это будет что-то вроде def login # - создавать переменные здесь # - выполнить действия end Теперь вы можете просто вызвать метод входа в систему, и он сделает все для вас. Пример проекта в GitHub имеет очень простой пример. – ucsunil

+0

Прошу прощения, но я не могу отформатировать код в комментариях – ucsunil

Смежные вопросы