2012-04-24 5 views
4

У меня есть функция файлКак вызвать функцию внутри другой функции в огурце-jvm?

Feature: Create Profile 

Scenario: Create Profile 
Given I want to create a profile 
When I create a profile 
Then I should be navigated to Home Page 
Then sign out link should exist 

Так что вышеприведенные работает все в порядке, и утверждает, что это на самом деле еще в домашней странице и ссылка знак выход есть.

И теперь у меня есть еще один файл функций.

Feature: Go to my account page 

Scenario: Go to my account page 
Given I want to go to my account page  
When I go to my account page 
Then I should be navigated to the my account page 

Перед запуском "When I go to my account page" шаг, пользователь должен "Create Profile".

Так что я сделал, я приложил к

When I create a profile 
Then I should be navigated to Home Page 
Then sign out link should exist 

перед тем When I go to my account page.

Но я вижу, что я дублировал тот же код, что и в функции «Создать профиль»/сценарий.

Как запустить всю функцию «Создать профиль»/сценарий внутри сценария «Перейти на мою учетную запись»?

Я использую огурец-jvm с селеном и JUnit.

+0

Возможно, вам понадобится создать метод под названием 'createOrVerifyProfile', который должен был бы вызвать все методы, связанные с функцией' CreateProfile' или функцией 'VerifyProfile' –

ответ

1

Вы видели фоновое DSL-функцию? Это будет работать для вашего дела, но, вероятно, не то, о чем вы буквально спрашиваете. В этом случае вы можете требовать пользователю создать профиль по:

Feature: Create Profile 
    Background: 
    Given I create a profile 
    And I should be navigated to Home Page 
    And sign out link should exist 

    Scenario: Create Profile 
    # do nothing because all actions are in background 

    Scenario: Go to my account page 
    When I go to my account page 
    Then I should be navigated to the my account page 

Но вы должны объединить два ваших художественных файлов в один файл функций.

Также обратите внимание на @Before и @ После аннотаций огурца - чтобы вы могли запустить некоторый код для инициализации (или создания) учетной записи для своего теста, если предыдущее решение не сработает для вас.

+0

, возможно ли связать его с отдельным файлом функции в« Background: ». Это было бы замечательно. «@Before» и «@After» не могут запускать файлы функций, которые я предполагаю. – user1559625

1

Функция Create Profile указывает данные/Когда/Тогда, потому что это то, что управляет реализацией функции.

Многие другие функции потребуют наличия действительного профиля. Вы не должны создавать профили для этих функций, повторяя спецификацию от Create Profile. Вместо этого включите что-то вдоль линий Given I have a valid profile (возможно, в разделе «Фон») и проложите это, чтобы создать код, который создает профиль.

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