【发布时间】:2019-11-26 09:11:35
【问题描述】:
我想使用 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
}
现在我想通过使用 step 参数转换来更改键值:
[StepArgumentTransformation(@"add correct regular expression here")]
public string TransformKeys(string value)
{
// Do transformation
return result;
}
我只希望以“key:”为前缀的值进入转换方法。我怎样才能做到这一点?我尝试了几种类似
的东西[StepArgumentTransformation(@"key:.*")
[StepArgumentTransformation(@"(key:.*)")
[StepArgumentTransformation(@"key:\w+")
但是我要么得到错误“参数计数不匹配”,要么根本没有输入转换方法。
【问题讨论】:
-
尝试在参数周围添加单引号 (')。这使得在正则表达式中更容易确定参数。
标签: c# .net testing specflow gherkin