Корнишон стол - убрать повторение - PullRequest
0 голосов
/ 11 июня 2018

У меня есть файл функций огурца-корнишона, показанный ниже:

Feature: Log in

  Scenario Outline: Successful log-in
     Given i enter <username>
     Given and password <password>
     Then I log in

     Examples:
       | username | password |
       | hello | sorry |
       | hello | hello |
       | hello | goodbye |
       | admin | sorry |
       | admin | hello |
       | admin | goodbye |

, как вы можете видеть выше в таблице имени пользователя и пароля, много повторений.как я могу удалить это повторение?

например, я мог бы создать две функции, такие как

(1)

Feature: Log in

  Scenario Outline: Successful log-in
     Given i enter hello
     Given and password <password>
     Then I log in

     Examples:
       | password |
       | sorry |
       | hello |
       | goodbye |

(2)

Feature: Log in

  Scenario Outline: Successful log-in
     Given i enter admin
     Given and password <password>
     Then I log in

     Examples:
       | password |
       | sorry |
       | hello |
       | goodbye |

но здесь все еще есть повторение.

есть какой-то другой способ удалить это повторение.я хотел бы что-то вроде:

Feature: Log in

  Scenario Outline: Successful log-in
     Given i enter <username>
       | hello |
       | admin |
     Given and password <password>
       | sorry |
       | hello |
       | goodbye |
     Then I log in

Но я не уверен, что вышеперечисленные вещи возможны ...

Пожалуйста, помогите мне ...

У меня естьздесь пропущены определения шагов, поскольку их легко сделать.

Ответы [ 3 ]

0 голосов
/ 13 июня 2018

Я не мог дать лучший ответ, чем @ kyle-fairns.

Но для полноты, поскольку ваш сценарий может быть упрощен (что может скрыть ваши истинные намерения).

0 голосов
/ 02 июля 2018

Я открыл для него вопрос https://github.com/cucumber/cucumber-js/issues/1105, но он был закрыт: (

0 голосов
/ 13 июня 2018

Короче, нет.Невозможно перемножить примеры в таблице Examples.

Однако есть альтернатива, которая способствует удобочитаемости и улучшает понимание тестов в бизнесе (это то, что вы действительно хотитеделать с тестами в стиле BDD).

Background:
  Given I am on the login page

Scenario Outline: Logging in with valid passwords
  When I attempt to log in as <user_type> with a valid password
  Then I should see the <page> page

 Examples:
    | user_type | page            |
    | a user    | home            |
    | an admin  | admin dashboard |

Scenario Outline: Logging in with invalid passwords
  When I attempt to log in as <user_type> with an invalid password
  Then I should see the password validation

 Examples:
   | user_type |
   | a user    |
   | an admin  |

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

...