огурец + вебрат: проверка текста появляется дважды - PullRequest
3 голосов
/ 20 августа 2009

Я работаю над приложением rails для самостоятельного обучения BDD и тестирования в целом. Используя cucumber + webrat + rspec, после трансляций видео трансляций. В этом приложении викторина has_many вопросов. Мнение, которое я проверяю, должно ставить вопрос дважды и не смежно. (здесь не проверяется смежность) У меня есть сценарий огурца, нацеленный на проверку этого

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 

Мой шаг определен так:

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

Я протестировал регулярное выражение с помощью инструмента, и, похоже, он работает, но на огурце тест не пройден.
Я погуглил некоторую документацию, но единственной документацией вебрата являются документы API; Я не смог отобразить ответ в виде текста. Любое предложение?

Ответы [ 2 ]

6 голосов
/ 28 августа 2009

Вы пробовали ответить. тело

Then /^I should see "([^\"]*)" twice$/ do |text|
  regexp = Regexp.new(text + "(.+)" + text)
  response.body.should contain(regexp)
end
1 голос
/ 03 февраля 2011

Мне пришлось изменить ответ Дамиана, чтобы заставить его работать между строк.

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