После того, как получил более комфортно в Behavior-Driven Developement с помощью SpecFlow, мне было интересно, о том, несколько сценариев для одной и той же функции следующим образом:Несколько сценариев в файле характеристик спецификации?
Register.feature
Feature: Register a new user
In order to use the system,
one must register with the system
so that one gets authorized and may login
Scenario: Register a new user using valid credentials
Given I am on the registration page
When I have entered my desired username "UserName" and password "password"
And I have confirmed my password "password"
And I click the register button
Then I shall get confirmation that I am now a registered user
Помимо того факта, что мой сценарий, возможно, слишком толстый, необходимо также проверить другие сценарии в процессе регистрации, такие как:
- Введите имя пользователя слишком коротка
- Входной пароль слишком короткий
- ввода пароля не содержит номера
- Введите пароль не совпадает с паролем подтверждения
Просто имя немного. Я прочитал о тегах, используя SpecFlow Feature файл, так что я мог бы, возможно, сделать следующее:
@shorterPasswordProvided
Scenario: Register a user using a password that is too short
Given I am on the registration page
When I have entered my desired user name
And I have provided a password that is too short "allo"
And I click the Register button
Then I shall get an error message which mentions about the password minimum length
@noCredentialsAtAll
Scenario: Register a user using no credentials at all
Given I am on the registration page
When I click on the Register button with no credentials entered
Then I shall get an error message that says I have to fill all required fields in
Затем, используя [BeforeScenario("myTag")]
должен сделать трюк.
Крючки позволяют выполнять подмножество тестов, выполняемых в соответствии с определенными правилами. Таким образом, метод When
может быть выполнен с предопределенным контекстом, то есть крюком, для которого он должен был быть выполнен, и который упоминается через BeforeScenario
или подобный атрибут.
Правильно ли я понял, или я здесь в тумане?
Я слишком далеко?
Я что-то упустил?
Все ли «слишком короткий пароль», «никакие учетные данные» не рассматриваются как разные сценарии использования, или они что-то еще, что может помещаться где-то еще в коде, например, само устройство тестирует?
Я имею в виду, что все эти сценарии относятся к функции «Регистр», и поэтому они должны быть определены в одном и том же файле Feature.Feature SpecFlow, правильно?
Стадию BeforeScenario выполняется до того, как сценарий выполняется, так что я не понимаете, что вы имеете в виду, когда говорите: «использование [BeforeScenario (« myTag ») должно делать трюк». Можете ли вы добавить более подробную информацию о том, чего вы пытаетесь достичь, используя PreScenario? –
На самом деле, среди всех поисков, которые я сделал до сих пор, все, что я могу найти, связано с тегами/крючками: https://github.com/techtalk/SpecFlow/wiki/Hooks –