【问题标题】:Cucumber Step Definition Regex ExcludeCucumber 步骤定义 Regex 排除
【发布时间】:2010-10-19 04:06:38
【问题描述】:

我需要一些有关 Cucumber 步骤定义文件中的正则表达式的帮助。我的许多步骤都是这样的:

Given I am on the search page

我的大部分步骤定义都使用这种通用模式,并使用默认的 Webrat 正则表达式来选择它,如下所示:

Given /^(?:|I )am on (.+)$/ do |page_name|
     visit path_to(page_name)
end

问题是我需要以不同方式处理标题为“结果”的页面,并且我不知道如何修改上述正则表达式以排除显示“鉴于我在结果页面上”的行。

【问题讨论】:

  • 更具体的正则表达式(用于结果页面)应该会获胜,因此您无需更改通用正则表达式。
  • 这实际上是我尝试的第一件事,但我仍然收到关于两个正则表达式匹配的错误。

标签: ruby regex cucumber


【解决方案1】:

您可以使用消极的前瞻性来解决这个问题:

Given /^(?:|I )am on (?!the results)(.+)$/ do |page_name|
    p page_name
end

Given /^I am on the results page$/ do
   p 'We matched the results page'
end

【讨论】:

  • 谢谢,我最终没有使用正则表达式,而是为每种情况编写单独的正则表达式,但我只是尝试过,它确实有效。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多