根据您的问题和意见的Jakub的答案,它看起来像你试图写一个单一的步骤,可以通过您的网站覆盖多个用户的旅程。 SpecFlow并非真正为此设计的,这可能表明您应该尝试改进场景/功能的结构。
要回答你的问题直接,我不相信有一种方法来推断基于在步骤定义特定字符串的存在布尔值。
如果你想坚持下来的这条路线,那么你原来的例子可能是你最好的选择。
我会建议你不要然而,采取这种方法,而是考虑重构你的步骤定义,以便你可以将它们连接在一起,并跨场景重复使用它们。我实际上正在努力思考一个适合您的解决方案的示例步骤定义。
多步骤方法的一个例子可能是这样的:
Given I have logged in as an existing user //1
And I have started my 6-step registration process //2
And I have filled in valid address values on step 1 //3
And I have left the fields blank on step 2 //4
... etc
When I save my registration
而且你的步骤将是:
- 导航到登录页面,登录为有效用户
- 导航到第1步
- 填写有效输入的字段,单击'下一个'
- 单击'下一个'
您只需要确保每一步都尽可能独立于其他步骤,以便在不影响其他步骤的情况下将一个步骤替换为一个细微差别的步骤(对于新的场景)。
通过这种方法,你仍然可以使用复杂的(和潜在的非常详细)的场景结束,但我认为这是不是巧言令色和包装尽可能多的到一个单一的步骤定义一个更好的解决方案。你最终可能会遇到无法阅读的场景,并且代码也可能会很难读取/维护。
在这种情况下,布尔标志的含义是什么?当两次==假时,做两次事情意味着什么? – 2013-04-24 14:54:53
这是一个制作的例子,所以可能不是最好的。我只想要一个很好的方法来查找特征文件中的步骤中是否存在字符串。 – 2013-04-24 14:57:06
很高兴看到真实的例子......对我而言,您的问题可能与您编写场景的方式有关。 – 2013-04-24 14:59:12