SpecFlow方法绑定中正则表达式匹配之间的细微差别

时间:2018-04-08 05:48:00

标签: c# regex specflow

我想为两个单独的方法定义这两个步骤绑定:

Given I remember {word} as {key}
And I remember that {key} is {word}

问题在于我到目前为止的绑定是:

[Given(@"I remember (.*) as (.*)")]
[Given(@"I remember that (.*) is (.*)")]

当然,这些都是重复的,因为第一个绑定中的(.*)会覆盖第二个绑定。

如何指定正则表达式来区分这些绑定?具体来说,包含that会导致第二个绑定匹配,而省略that则匹配第一个绑定。

2 个答案:

答案 0 :(得分:0)

我喜欢确保任何模式之前的第一部分对于第一部分和后续条款是不同的。 E.g。

  

鉴于我记得{word}为{key}

     

also记得{key}是{word}

这种方式在第一种模式之前没有共同的部分。

答案 1 :(得分:0)

试验和错误产生了这个有效的解决方案......

此功能步骤

[Given(@"I remember (?!that)(.*) as (.*)")]

匹配此方法属性

And I remember that {key} is {word}

此功能步骤

[Then(@"^I remember that (.*) is equal to (.*)$")]

匹配此方法属性

List<Device_PriceList>