如何在 Cucumber 步骤定义中使单词可选?

How do I make a word optional in a Cucumber step definition?

我在下面有一个步骤定义,它执行我想要它执行的操作,即它根据 'PAGES' 哈希的 'page' 元素检查页面的 url。

Then(/^I should( still)? be at the "(.*)" page$/) do |still, page|
  BROWSER.url.should == PAGES[page]
end

步骤定义用于两者

但是,我不需要将 "still" 传递到块中。我只需要它是可选的以匹配步骤但不传递到块中。我该怎么做?

谢谢。

您想将 "still" 组标记为非捕获。这是通过使用 ?:.

启动组来完成的
Then(/^I should(?: still)? be at the "(.*)" page$/) do |page|
  BROWSER.url.should == PAGES[page]
end