Можно ли добавить «Остальное» после «Дано, Когда, Тогда»? - PullRequest
0 голосов
/ 01 марта 2019

Я новичок в Gherking и пытаюсь написать свои первые сценарии как можно лучше, но я регулярно нахожусь в ситуациях, когда я действительно испытываю желание добавить «Else» в мой сценарий.«Дано, Когда, Тогда» становится «Дано, Когда, Тогда, Остальное».Я знаю, что ключевое слово «Else» не определено и поэтому не реализовано в инструментах Gherkin, но мне все равно, потому что я не использую эти инструменты.

Считаете ли вы правильным написать это:

Пример:

Scenario : Application starts
  Given I start the application
  When I already have an open session
  Then I see the home screen
  Else I see the login screen

Или лучше написать два разных сценария:

Scenario : Application started by authenticated user
  Given I have an open session
  When I start the application
  Then I see the home screen

Scenario : Application started by unauthenticated user
  Given I don't have an open session
  When I start the application
  Then I see the login screen

1 Ответ

0 голосов
/ 19 марта 2019

Короче говоря, нет, но вот варианты для обработки нескольких вариантов сценария:

  • Если отличались только элементы этапов сценария, которые отличались, вы могли бы перенести ранние этапы в общую.Раздел «Фон», что делает повторяющиеся различные сценарии короче и понятнее.

Но из вашего примера все этапы немного отличаются, поэтому вы можете: -

  • принять повторениенесколько сценариев

Или

  • параметризуют различия и используют таблицы данных в разделах «задано» и «затем» для предоставления значений до и после.

Или (мое предпочтение)

  • Используйте синтаксис «Схема сценария», который использует таблицу примеров для предоставления наборов данных с ожидаемыми результатами.Они заменяют на этапах сценария время выполнения.Затем сценарий «разыгрывается» один раз для каждой строки в таблице примеров.

Итак:

    Scenario : Application started by authenticated user
    Given I have an open session
    When I start the application
    Then I see the home screen

    Scenario : Application started by unauthenticated user
    Given I don't have an open session
    When I start the application
    Then I see the login screen

Становится:

    Scenario Outline: Application Start and login
    Given Application started by <AuthenticationStatus> user
    And I have <SessionState> session
    When I start the application
    Then I see the <FirstScreen> screen

    Examples:
    |AuthenticationStatus   |SessionState   |FirstScreen|
    |Authenticated          |open           |home       |
    |Un-Authenticated       |not open       |login      |

ИМХО для2 сценария, это может не стоить потери читабельности, но более того, я думаю, это определенно стоит того.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...