2012-06-11 2 views
3

Я начинаю исследовать BDD и Cucumber. Итак, я хочу проверить, отображает ли моя страница содержание двух статей, которые у меня есть. Это шаг я использую чек, если содержание есть:Проверить содержимое веб-страницы в тесте огурца

Then /^I should see "([^"]*)"$/ do |desc| 
page.should have_content desc 

expected = Article.find_by_description(desc) 
page.should have_content(expected.navision_code) 
page.should have_content(expected.category.name) 
end 

Обычно это должно сделать трюк, я предполагаю, но когда я запускаю тест, который я получил сообщение об ошибке:

expected there to be content "---\n- tenetur\n" in "Alfa Paints Order System\n\n\n\nAlfa Paints\n\n\n\nSeth abernathy, admin\n\n\nVerander paswoord\n\nLogout\n\n\n\n\n\n\n\n\n\n\n\nAlfa Paints\nordering system\n\n\n\n\n\nOverzicht van alle artikelen\n\n\n\nBack\n\n\n\n\n\n\nProduct ID\nBeschrijving\nCategorie\n3001\nPaint\n---\n- tenetur\n\n3002\nBrush\n---\n- tenetur\n\n\n\n\n\n\n\n\n\n\n 
(RSpec::Expectations::ExpectationNotMetError) 
./features/step_definitions/admin_articles_steps.rb:41:in `/^I should see "([^"]*)"$/' 
features/admin_articles.feature:10:in `Then I should see "Paint"' 

Как вы можете видеть, я ожидаю, что краска и сообщение об ошибке покажут, что содержимое внутри. Но каким-то образом огурец не узнает его.

Я новичок в огурце, и я, вероятно, что-то пропустил, но, возможно, кто-то может помочь мне на моем пути.

+1

Похоже Капибара не очень хорошо играть с новой строкой. Вы могли бы попытаться удалить их с чем-то вроде этого: http://praktikanten.brueckenschlaeger.org/2011/11/15/working-in-cucumber-with-new-lines-and-have_content – DVG

+0

Я не думаю, что вам нужно чтобы определить «целую» статью, есть ли «успешный» тест, возможно, проверьте на случайные строки в статье? – omarvelous

ответ

0

Вы тестируете сразу три вещи, поэтому трудно сказать, какие из ожиданий терпят неудачу. В качестве первого шага попробуйте прокомментировать все, кроме первого ожидания, только чтобы убедиться, что он не работает, когда вы думаете.

Then /^I should see "([^"]*)"$/ do |desc| 
page.should have_content desc 

// expected = Article.find_by_description(desc) 
// page.should have_content(expected.navision_code) 
// page.should have_content(expected.category.name) 
end 

Если вы по-прежнему имеют те же проблемы, добавить отладчик, так что вы можете поэкспериментировать и посмотреть, что происходит внутри вашей тестовой среде. Это навык, который стоит развивать, если вы планируете много тестировать огурцы.

Then /^I should see "([^"]*)"$/ do |desc| 
debugger 
page.should have_content desc 
end 

С отладки консоли увидеть, что переменная убывание и страница выглядит следующим образом:

p desc 
p page.content 
Смежные вопросы