我想使用SpecFlow的StepArgumentTransformation将所有以"key:“为前缀的字符串转换为其他字符串。我不知道如何使用正确的正则表达式。
假设我的功能文件中有以下步骤:
Given a user is logged in with key:testkey and has password key:testpassword and username John
这导致了这个步骤的定义:
[Given(@"a user is logged in with (.*) and has password (.*) and username (.*)")]
public void GivenUserIsLoggedIn(string key, string password, string username)
{
// To stuff
}
现在,我想通过使用步骤参数转换来更改键值:
[StepArgumentTransformation(@"add correct regular expression here")]
public string TransformKeys(string value)
{
// Do transformation
return result;
}
我只希望以"key:“为前缀的值进入转换方法。我如何才能做到这一点?我试过几种方法,比如
[StepArgumentTransformation(@"key:.*")
[StepArgumentTransformation(@"(key:.*)")
[StepArgumentTransformation(@"key:\w+")
但我要么得到错误“参数计数不匹配”,要么根本没有输入转换方法。
发布于 2019-07-17 16:03:54
注意:我使用specflow3作为版本
Scenario: stackoverflow usecase
Given a user is logged in with key:testkey and has password key:testpassword and username John
在步骤定义中:
[Given(@"a user is logged in with (key:.*) and has password (key:.*) and username John")]
public void GivenAUserIsLoggedInWithKeyTestkeyAndHasPasswordKeyTestpasswordAndUsernameJohn(string username, string password)
{
var user = username;
var pass = password;
Console.Write("username: {0} and password: {1} ", user, pass );
}
[StepArgumentTransformation(@"key:(.*)")]
public string ValueForKey(string value)
{
return value;
}
如果为您工作,请接受答案。在您的案例中,specflow版本是什么?
https://stackoverflow.com/questions/57077468
复制相似问题