我已经阅读了Stackoverflow上有关类似问题的大量文章,但其中大多数与场景中的步骤有关,而不是场景概述。我的问题是,尽管Intellij为我生成了步骤定义存根,但它无法识别该步骤(当步骤包含变量时),并且它定义的步骤对于方案大纲而言似乎不正确。如果我可以举一个例子来说明: 这个黄瓜步骤:
这里的两个问题是特征步骤保留了米色背景,表明该步骤未定义,并且当您将鼠标悬停在该步骤上时,弹出工具提示会确认这一点。其次,步骤定义代码没有传递给它的变量,代表我的方案大纲中的选项。我本来希望生成的代码是下面显示的我编辑过的代码,但是这也不被认为是步骤定义。 我尝试创建两个类似的步骤,但是在我的方案大纲示例中更改了实际值的名称,但这不起作用,并且我没有安装Substeps插件。 我的所有单个场景生成步骤都会在生成后立即被识别,但是问题特别在于场景概述。可以识别方案大纲中的给定步骤,或者任何没有变量的步骤。 我花了整整一周的时间在网上进行搜索,以找到解决方案,但方案概述示例很少。 我已经使用Visual Studio和SpecFlow插件进行了类似的练习,这很容易。
答案 0 :(得分:0)
在对场景大纲中的单个步骤进行了更多测试之后,我找到了一个解决方案-用(。*)替换您的“变量”,因此在上面的示例中,公认的步骤定义代码为:
When("the user clicks the (.*) link", (String link) -> {
// Do some test stuff here.
});
这似乎并不遵循黄瓜步骤定义表达式,该表达式显然将黄瓜步骤链接到步骤定义(see here)。我本来以{String}作为表达式。另外,它不是Intellij的Alt + Enter自动生成的。
尽管它非常强大,但在“用户单击“此处任何文本”链接”之后的任何黄瓜步骤中,都会看到此步骤定义。