2009-08-20 12 views
3

Je travaille sur une application rails pour auto-enseigner le BDD et les tests en général. Utilisation de concombre + webrat + rspec, après les tuts vidéo de railcasts. Dans cette application, un quiz a beaucoup de questions. La vue que je suis en train de tester devrait rendre la question deux fois et de manière non contiguë. J'ai (ici pas de tester contiguïté) un scénario de concombre visant à vérifier cetteconcombre + webrat: vérification du texte apparaissant deux fois

Given quiz titled "Pearl Jam" has questions named "Corduroy, Dissident" 
When I go to the experiment page for quiz titled "Pearl Jam" 
Then I should see "Corduroy" twice 
And I should see "Dissident" twice 

Mon étape est définie comme ceci:

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text) 
    response.should contain(regexp) 
end 

Je l'ai testé l'expression rationnelle avec un outil, et il semble fonctionner , mais le test échoue sur le concombre.
J'ai recherché sur Google de la documentation, mais la seule documentation de webrat est la documentation de l'API; Je n'ai pas pu obtenir la réponse affichée sous forme de texte. Une suggestion?

Répondre

6

Avez-vous essayé une réponse? corps

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text) 
    response.body.should contain(regexp) 
end 
+0

Réponse parfaite. Merci – nutsmuggler

+0

Il est facile de rater ces choses quand vous êtes pris dans le code! – Damian

1

je devais modifier la réponse de Damian pour obtenir que cela fonctionne à travers les lignes.

Then /^I should see "([^\"]*)" twice$/ do |text| 
    regexp = Regexp.new(text + "(.+)" + text, Regexp::MULTILINE) 
    response.body.should contain(regexp) 
end