Я написал два сценария в Specflow: один для пользовательского интерфейса, а другой - для API. Определения сценария и шага следующие:

Scenario 1:
@Regression
Scenario Outline: Add Single New External User
Given the <role> is logged on to the portal with <email> and <password>
When the <role> clicks on profile avatar
Something....

Scenario 2:
@GetClientList
Scenario Outline: GET API response for fetching list of Clients matching  
criteria entered in the Search Text field
Given the <endpoint>
When I call Get method
Something....

Step Definitions:
[Given(@"the (.*) is logged on to the portal with (.*) and (.*)")]
public void GivenLoginToPortal(string role, string email, string password)
 {
    //Something
 }

[Given(@"the (.*)")]
public void GivenTheEndpoint(string endpoint)
 {
     Endpoint = endpoint;
 }

Здесь, когда я перехожу к определению шага данного оператора в первом сценарии, он показывает предупреждение для обнаруженных множественных соответствий привязок .. а привязка множественных совпадений относится к определению шага второго данного оператора. Но я считаю, что, поскольку оба заданных утверждения различны, тогда почему первый данный дает несколько привязок совпадений?

0
TrueDroider 1 Апр 2019 в 15:03

1 ответ

Лучший ответ

Строка, которую вы используете в качестве параметра атрибута Given-, является регулярным выражением. И (. *) Является универсальным в Regex. Таким образом, каждый шаг, который начинается с the, будет соответствовать этой привязке.

Я предлагаю вам изменить шаг на что-нибудь строковое the endpoint with name '(.*)'.

Также рекомендуется заключать параметры в одинарные кавычки '. Параметры легче перехватить, и расширение VS может лучше предложить скелетный код привязки.

0
Andreas Willich 2 Апр 2019 в 08:40