黄瓜步骤定义正则表达式排除

时间:2010-10-19 04:06:39

标签: ruby regex cucumber

我需要一些Cucumber步骤定义文件中的正则表达式的帮助。我的许多步骤都属于以下类型:

Given I am on the search page

我在大多数步骤定义中使用这种通用模式,并使用默认的Webrat正则表达式来获取它,如下所示:

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

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

1 个答案:

答案 0 :(得分: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