Java 和 cucumber : Strange ambiguous step definition exception

标签 java intellij-idea cucumber

环境:Java/IntelliJ/Cucumber

最近,我多次遇到 IntelliJ 声称步骤定义不明确,而实际上似乎没有。

cucumber.runtime.AmbiguousStepDefinitionsException: "that "saken" is a 
rejected case in kommune "5000"" matches more than one step definition:
"^that "([^"]*)" is a rejected case" in SakSteps.isARejectedCase(String)
"^that "([^"]*)" is a rejected case in kommune "([^"]*)"$" in 
SakSteps.isARejectedCaseInKommune(String,String)

虽然前 6 个字符串匹配,但“给定”步骤文本不相同:

"^that "([^"]*)" is a rejected case"
"^that "([^"]*)" is a rejected case in kommune "([^"]*)"$"

方法名称完全不相似:

isARejectedCase(String)
isARejectedCaseInKommune(String,String)

为什么 IntelliJ/Cucumber 声称这些是模棱两可的?

此代码之前确实有效。中间可能有一些插件更新或其他更新,但我不明白为什么它会这样?

最佳答案

在这里回答我自己的帖子:

原因是在步骤定义的末尾缺少一个“$”来标记句子的结尾。否则,它将匹配以相同单词开头的定义。示例:

When X does Y because of W
When X does Y because of W in addition to P

关于Java 和 cucumber : Strange ambiguous step definition exception,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54286875/

相关文章:

java - 检查用户是否仅将字母放入字符串中

java - 如何安装 Preon?

cucumber - 我可以将 PhantomJS 与 Cucumber-js 一起使用吗

java - 试图调用一个不存在的方法...纠正类路径

java - @Reference 字段上的 Morphia 点符号查询

java - JTextArea行、列和字符关系

scala - IntelliJ 似乎没有选择某些 sbt 库,没有代码完成

scala - IntelliJ : Scala worksheet don't pick up code changes without restart

ruby - 如何降低使用 selenium 截取的屏幕截图的质量或尺寸?

flash - 如何测试 Flash 应用程序?