2010-10-19 3 views
2

J'ai besoin d'aide avec une expression régulière dans un fichier de définition de pas de concombre. Beaucoup de mes étapes sont du type:Concombre Étape Définition Regex Exclure

Given I am on the search page 

J'utilise ce schéma général pour la plupart de mes définitions étape, et d'utiliser la valeur par défaut Webrat regex pour le ramasser qui ressemble à ceci:

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

Le problème est que je dois gérer différemment une page intitulée "Résultats", et je ne sais pas comment modifier l'expression rationnelle ci-dessus pour exclure les lignes qui disent "Étant donné que je suis sur la page de résultats".

+0

regex Plus spécifique (pour la page de résultat) devrait gagner par conséquent, vous n'avez pas besoin de changer le regex générique. – jfs

+0

C'était en fait l'une des premières choses que j'ai essayées, mais j'ai toujours une erreur sur les deux correspondances de regex. – Swaraj

Répondre

1

Vous pouvez utiliser un regard négatif avant de résoudre celui-ci:

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

merci, j'ai fini par ne pas utiliser l'expression régulière, et au lieu d'écrire des expressions rationnelles individuelles pour chaque cas, mais je viens d'essayer cela et ça fonctionne vraiment. – Swaraj

Questions connexes