RSpec не отображает тег Head - PullRequest
1 голос
/ 13 апреля 2011

Я провожу некоторые тесты против создания канонических ссылок на нашем сайте и сталкиваюсь со следующей проблемой Webrat в RSpec.

Вот тест:

[...setup stuff...]
it "should not render a canonical link rel" do
  assign(:post, @post)
  render
  rendered.should have_selector('link', { :rel => 'canonical', :href => post_path(@post, :only_path => false)})
end

ИВот результаты:

   Failure/Error: rendered.should have_selector('link', { :rel => 'canonical', :href => post_path(@post, :only_path => false)})
   expected following output to contain a <link href='http://test.host/posts/123913-post-name' rel='canonical'/> tag:
   <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">

   <html><body>

   <div>
   [.... lots more stuff that is rendered properly ....]

Как видите, между тегами html и body нет отображаемых тегов.Тем не менее, когда я получаю доступ к странице напрямую (используя наш сервер), нет проблем.Это проблема конфигурации?

1 Ответ

1 голос
/ 15 апреля 2011

Ответ здесь был в вызове "render".Вместо того, чтобы просто сказать «рендер», мне нужно установить шаблон и макет.Вот что сработало:

it "should render a canonical link rel" do
  assign(:post, @post)
  render :template => "posts/show", :layout => "layouts/application"
  rendered.should have_selector('link', { :rel => 'canonical', :href => post_path(@post, :only_path => false)})
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...