gpt4 book ai didi

.net - specflow: - "Ambiguous step definitions found for step"当 1 步的参数多于另一步时

转载 作者:行者123 更新时间:2023-12-04 03:22:16 24 4
gpt4 key购买 nike

目前我们有这一步:

[When(@"I set the scenario price for product (.*) to (.*)")]
public void WhenISetTheScenarioPriceForProductPToN(string product, string priceStr)

我想添加步骤:
[When(@"I set the scenario price for product (.*) to (.*) in the (.*) zone")
public void WhenISetTheScenarioPriceInZoneForProductPToN(string product, string priceStr, string zone)

但是,规范流程在两个步骤之间给出了“为步骤找到了不明确的步骤定义”错误。

我累了:
  [When(@"I set the scenario price for product (.*) to (.*) in the (.*) zone")]
[When(@"I set the scenario price for product (.*) to (.*)")]
public void WhenISetTheScenarioPriceInZoneForProductPToN(string product, string priceStr, string zone)

但失败并出现“绑定(bind)错误:参数计数不匹配!”我希望它会在第二个“何时”通过 null。

最佳答案

第二个问题是你的 (.*)。这可以扩展为匹配“abc 区域中的 xyz”。你可以只匹配一个单词吗?即 (\w+)

[When(@"I set the scenario price for product (.*) to (\w+)")]

这也将阻止 abc 区域中较短的正则表达式匹配。

您可以通过注释掉较长的 When 属性和方法并调试以查看与较短的匹配的内容来测试这一点。

此外,您始终必须拥有与参数相同数量的正则表达式,这就是为什么组合起来不起作用的原因。

这对我不起作用,这是由于“0.99”和“。”的价格。没有被\w 匹配。但是,这有效:
[When(@"I set the scenario price for product (.*) to (\S+)")]
public void WhenISetTheScenarioPriceForProductPToN(string product, string priceStr)

因为我们的“测试值”中没有空格。

关于.net - specflow: - "Ambiguous step definitions found for step"当 1 步的参数多于另一步时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13763502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com