2010-10-19 78 views
2

我需要一些在黃瓜步驟定義文件中的正則表達式的幫助。我的許多步驟類型:黃瓜的步驟定義正則表達式排除

Given I am on the search page 

我用我的大部分的步驟定義這個一般模式,並使用默認Webrat正則表達式來把它撿起來,看起來像這樣:

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

問題是我需要以不同的方式處理標題爲「結果」的頁面,並且我不知道如何修改上述正則表達式來排除「給定我處於結果頁面上」的行。

+0

更具體的正則表達式(對於結果頁)因此應該贏得比賽,你不需要改變通用的正則表達式。 – jfs 2010-10-19 19:12:44

+0

這實際上是我嘗試的第一件事情之一,但我仍然得到關於這兩個正則表達式匹配的錯誤。 – Swaraj 2010-10-19 22:09:09

回答

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 
+0

謝謝,我最終沒有使用正則表達式,而是爲每個案例編寫單獨的正則表達式,但我只是嘗試了這一點,它絕對有效。 – Swaraj 2010-10-29 06:42:37