Ошибка RSpec have_tag даже при наличии тега? - PullRequest
2 голосов
/ 16 мая 2011

Майкл Хартл (Michael Hartl), в настоящее время занимается обучением Ruby On Rails, и приступаю к разработке на основе тестов. Учебное пособие требует написания тестов, чтобы гарантировать наличие правильных заголовков на наших страницах html.erb. Есть три из этих страниц - дома, контакт и о. Тесты выглядят так:

it "should have the right title" do
  get 'home' 
  response.should have_tag("title",
                         "Ruby On Rails Sample Application | Home")
end

Мой файл home.html.erb выглядит так:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
  <title>Ruby On Rails Sample Application | Home</title>
</head>
<body>
<h1>Sample App Home</h1>
<p>This is the home page for the 
<a href="http://www.railstutorial.org/">Ruby on Rails Tutorial</a>
sample application.</p>
</body>
</html>

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

'PagesController GET 'home' should have the right title' FAILED
 Expected at least 1 element matching "title", found 0.

Может кто-нибудь объяснить, что здесь происходит не так? Спасибо

Ответы [ 2 ]

1 голос
/ 16 мая 2011

у вас есть require 'spec_helper' в верхней части вашего pages_controller_spec.rb?

У вас есть render_views оператор в вашем блоке описаний?

Джон Пол Ашенфелтер подумал, что save_and_open_page был методом Капибары, а не Rspec?

0 голосов
/ 16 мая 2011

Вы должны начать с проверки правильности отображения страницы, используя

save_and_open_page

в вашем Rspec.Обычно есть проблема с рендерингом (например, может быть, недопустимый xHTML?)

Вам также необходимо добавить гем запуска в ваш проект (например, гем 'launchy' в вашем Gemfile)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...