如何在 Specflow 中使用正则表达式
How use Regular Expressions in Specflow
我的问题是:
如何在 Specflow 中使用正则表达式编写步骤?
例如我要验证网页上显示如下信息:
"The contract xxxx has been successfully saved ".
注意: xxxx可以包含数字和字母,动态生成。
Then The message "????" is displayed
谢谢。
我会让你的步骤更多地关注你期望发生的事情,而不是它是如何发生的:
Then I get an indication that the contract has been saved successfully
然后当您执行该步骤时,您可以使用正则表达式检查预期的消息。
Then("I get a message indicating that the contract has been saved")
public void ThenIGetAMessage()
{
//pseudo code
Regex regex = new Regex("The contract [0-9a-zA-Z]+ has been successfully saved"
regex.Match(result).Should().BeTrue();
}
但如果您想在场景中包含消息匹配文本,那么我可以想到几个选项:
首先,传递准确的正则表达式来匹配:
Then the message "The contract [0-9a-zA-Z]+ has been successfully saved" is displayed
代码如下:
Then("the message "(.*)" is displayed")
public void ThenIGetAMessage(string regex)
{
//pseudo code
Regex regex = new Regex(regex);
regex.Match(result).Should().BeTrue();
}
或为合同编号使用占位符
Then the message "The contract <ContractNumber> has been successfully saved" is displayed
代码如下:
Then("the message "(.*)" is displayed")
public void ThenIGetAMessage(string regex)
{
//pseudo code
Regex regex = new Regex(regex.Replace("<ContractNumber>","[0-9a-zA-Z]+"));
regex.Match(result).Should().BeTrue();
}
我的问题是:
如何在 Specflow 中使用正则表达式编写步骤?
例如我要验证网页上显示如下信息:
"The contract xxxx has been successfully saved ".
注意: xxxx可以包含数字和字母,动态生成。
Then The message "????" is displayed
谢谢。
我会让你的步骤更多地关注你期望发生的事情,而不是它是如何发生的:
Then I get an indication that the contract has been saved successfully
然后当您执行该步骤时,您可以使用正则表达式检查预期的消息。
Then("I get a message indicating that the contract has been saved")
public void ThenIGetAMessage()
{
//pseudo code
Regex regex = new Regex("The contract [0-9a-zA-Z]+ has been successfully saved"
regex.Match(result).Should().BeTrue();
}
但如果您想在场景中包含消息匹配文本,那么我可以想到几个选项:
首先,传递准确的正则表达式来匹配:
Then the message "The contract [0-9a-zA-Z]+ has been successfully saved" is displayed
代码如下:
Then("the message "(.*)" is displayed")
public void ThenIGetAMessage(string regex)
{
//pseudo code
Regex regex = new Regex(regex);
regex.Match(result).Should().BeTrue();
}
或为合同编号使用占位符
Then the message "The contract <ContractNumber> has been successfully saved" is displayed
代码如下:
Then("the message "(.*)" is displayed")
public void ThenIGetAMessage(string regex)
{
//pseudo code
Regex regex = new Regex(regex.Replace("<ContractNumber>","[0-9a-zA-Z]+"));
regex.Match(result).Should().BeTrue();
}