假设我在下面的功能文件中有一个场景
鉴于我以“超级”用户身份登录 当我点击登录时 然后显示主页
使用相应的步骤定义
[Given(@"I log in as ""(.*)"" user")]
public void GivenIHaveLogInAsUser(string p0)
{
ScenarioContext.Current.Pending();
}
现在我要改变
Given I log in as "super" user
要
Given I have logged in as "super" user
当我在功能文件中进行此更改时,如何让SpecFlow在步骤定义中自动进行此更改。
答案 0 :(得分:1)
这是不可能的,我不相信。你有两个选择:
[Given(@"I log in as ""(.*)"" user")]
[Given(@"I have logged in as ""(.*)"" user")]
public void GivenIHaveLogInAsUser(string p0)
{
ScenarioContext.Current.Pending();
}
这将允许两个文本匹配的步骤
答案 1 :(得分:1)
这个帖子迟到了,但你可以使用visual studio查找并替换启用了正则表达式的工具来同时替换步骤定义和步骤实现。
例如对于步骤定义:Given I have a message '(.*)' that is (.*) characters long
,我们可以使用步骤定义本身来搜索任何匹配步骤,并替换为新步骤。 $ n可用于结转在查找中拾取的正则表达式匹配。
查找:I have a message '(.*)' that is (.*) characters long
替换:I have a message $1 that is $2 characters in length
结果:'I have a message 'myMessage' that is 100 characters long'
变为'I have a message 'myMessage' that is 100 characters in length'