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 ответа
Для данной спецификации в файле.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)
{
}