Specflow - как передать данные, имеющие квадратные скобки, в определение шага без потери данных.

У меня есть тест specflow, который выглядит так

When I create a team with <TeamName> <MemberName> <MemberMobileNumber> successfully
Examples:
|TeamName|MemberName|MemberMobileNumber|
|Apple(RD) |James(Smith)|(09)1234567|

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

[When(@"I create a team with (.*) (.*) (.*) successfully")]
public void WhenICreateATeamWithTeam......{

}

Большое спасибо за вашу помощь в этом.

2 ответа

Не вижу никаких потерь данных в вашем примере: введите описание изображения здесь

Я также попробовал с таблицей, и она работает хорошо.

Я потерял данные, когда попытался сделать такие шаги:

[When(@"I create a team with \(.*) \(.*) \(.*)")]

Моя версия SpecFlow 2.4.0

Для данной спецификации в файле.feature, как вы показали в вопросе:

Scenario Outline: workWork
   When I create a team with <TeamName> <MemberName> <MemberMobileNumber> successfully
   Examples:
   |TeamName    |MemberName     |MemberMobileNumber |
   |Apple(RD)   |James(Smith)   |(09)1234567        |

И для определения шага, как:

[When(@"I create a team with (.*) (.*) (.*) successfully")]
public void WhenICreateATeamWithAppleRDJamesSmithSuccessfully(string p0, string p1, string p2)
{

}

Тогда данные внутри параметров p0, p1 и p2 на шаге будут такими, как ожидается: p0 = "Apple(RD)", p1 = "James(Smith)", p3 = "(09)1234567".

Есть 2-й способ сделать это, используя "" для текстовых данных в файле.feature, а затем следовать за ""(.*)"" В регулярном выражении (в методе, созданном в файле step.cs) для каждого входного параметра.

Scenario Outline: workWork
    When I create a team with <TeamName> <MemberName> <MemberMobileNumber> successfully
    Examples:
    |TeamName       |MemberName     |MemberMobileNumber |
    |"Apple(RD)"    |"James(Smith)" |"(09)1234567"      |

[When(@"I create a team with ""(.*)"" ""(.*)"" ""(.*)"" successfully")]
public void WhenICreateATeamWithAppleRDJamesSmithSuccessfully(string p0, string p1, string p2)
{

}
Другие вопросы по тегам