根据您的问题和对 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 步
- 使用有效输入填写字段,单击“下一步”
- 点击下一步'
您只需要确保每个步骤尽可能独立于其他步骤,这样您就可以用一个略有不同的步骤(对于新场景)替换一个步骤,而不会影响其他步骤。
使用这种方法,您仍然可能会遇到复杂(并且可能非常冗长)的场景,但我认为这比试图变得聪明并将尽可能多的内容打包到单个步骤定义中是更好的解决方案。您可能最终会遇到不可读的场景,并且代码可能也很难阅读/维护。