Огурец / огурец - Можем ли мы сгруппировать операторы «когда», например «данные» в «Backgound»? - PullRequest
0 голосов
/ 03 мая 2018

Я делаю свои первые шаги с огурцом / огурцом.

Я читал о синтаксисе и когда / как правильно использовать каждый тег в официальной документации, однако мне интересно, есть ли подходящий способ сгруппировать определенные операторы, которые используются снова и снова в рамках «Когда» этап, похожий на группировку «данных» операторов в разделе «Фон»?

Пример:

Feature: Wanting to reduce code duplications
Background:
    Given I have done some set up
    And I have done some more set up

@Scenario_1
Scenario: An example scenario
    # Some Givens defined in Background
    Given a unique step is taken
    # When
    When I perform some action that will be repeated
        And I perform another action that will be repeated
        And I perform a non-repeated task
    # Then
    Then something will be expected at the end

@Scenario_2
Scenario: An second example scenario
    # Some Givens defined in Background
    Given a different unique step is taken
    # When
    When I perform some action that will be repeated
        And I perform another action that will be repeated
        And I perform a different non-repeated task
    # Then
    Then something different will be expected at the end

Есть ли способ, которым я могу абстрагировать или сгруппировать операторы "Когда":

When I perform some action that will be repeated
And I perform another action that will be repeated

в свой раздел вроде "Фон"?

1 Ответ

0 голосов
/ 03 мая 2018

Прежде всего, имейте в виду, что огурчик должен быть BDD, что означает развитие, управляемое поведением. То, как вы описали шаги, - это не поведение, а действия. When I perform some action that will be repeated не описывает какое-либо поведение системы или пользователя.

Для повторного задания сгенерируйте When, который описывает поведение, а затем в коде Java определите все необходимые вам повторяющиеся шаги.

Пример:

Given I go to a website
When when I click on username and typ 'User1'
And when I click on password and typ 'welcome123'
And when I click on the login button
Then the dashboard is shown
And I see that there is a proper header

По сути, в таком случае вы описываете физический тестовый пример в корнишоне.

Что вы действительно хотите достичь, это:

Given I navigate to a website
When I login
Then the dashboard is shown by system

Конечно, вы можете уточнить шаги, сказав что-то вроде:

Given I navigate to website 'http://www.google.com/' in browser 'Chrome'
When I login as user 'User1'
Then the dashboard is shown by system

Таким образом, вы сразу узнаете, что делает тест, какие основные данные используются, и вы можете быстро увидеть, соответствует ли он требованиям.

Так что в вашем случае попробуйте уменьшить описания шагов в корнишоне, и ваши дубликаты уменьшатся автоматически.

...