我有一个像这样的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......{
}
非常感谢您的帮助。
答案 0 :(得分:0)
我也尝试过使用Table,并且效果很好。
尝试执行以下步骤时,数据丢失:
[When(@"I create a team with \(.*) \(.*) \(.*)")]
我的SpecFlow版本是2.4.0
答案 1 :(得分: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”。
有第二种方法,对每个.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)
{
}