我正在尝试将基于RegExp的Cucumber v1步骤定义转换为基于Cucumber Expression的Cucumber v2.0.0-rc.9步骤定义。我有一些使用正则表达式的步骤定义,如下所示:
/^I (?:am on|go to) the "([^"]*)" page$/
那样,我就能在我的特性文件中写下以下内容之一:
I am on the "Login" page
I go to the "Home" page
我想转换为Cucumber表达式,以便开始使用自定义参数,但我找不到一个很好的方法来复制(?:am on|go to)。我能想到的最好办法就是使用多个alternative texts。
I am/go on/to the "{captureString}" page
我不喜欢这种方法的原因是它允许编写以下无意义的步骤:
I am to the "Login" page
我也尝试使用一个包含
|
字符的单个 可选文本,如下所示:I (am on|go to) the "{captureString}" page
但是cucumber-expressions-javascript有意地转义了|
字符,因此生成的RegExp看起来像这样:
/^I (?:am on\|go to)? the "([^"]*)" page$/
有没有办法使用Cucumber表达式创建一个包含多个单词的替代文本组?