Capybara + RSpec видит только пустые страницы в спецификациях контроллера.Зачем? - PullRequest
6 голосов
/ 09 мая 2011

Я пытаюсь написать спецификацию контроллера для простого контроллера. Тем не менее, Капибара не видит никакого содержимого страницы. Тем не менее, просмотр страниц сайта в моем браузере работает просто отлично. Что я делаю не так?

Т. Хэнкс!

Моя спецификация контроллера

Мой spec_helper.rb

Мой Gemfile

1 Ответ

14 голосов
/ 09 мая 2011

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

require 'spec_helper'

describe PostsController do
  render_views # Render this controller's views during spec execution.

  before do
    @post = Fabricate :post
  end

  # ...
end

Это описано в readme rspec.Для более подробного просмотра см. Функцию rspec-rails 'cucumber для' render_views '.

Только одно предостережение об этом.Есть причины, почему это не поведение по умолчанию:

  • Возможно, вы смешиваете две проблемы, тестируя представления одновременно с контроллерами.Райан Бигг (см. Комментарии) предполагает, что ваши тесты могут лучше рассматриваться как интеграционные тесты, которые обычно живут в spec/integration, а не spec/controller.
  • Визуализация представлений может замедлитьвыполнение ваших тестов значительно.

... Не говорю, что вы не должны этого делать, просто говорю, что вам должно быть ясно , почему вы .

Надеждаэто помогает.

...