RSpec - @controller is nil

У меня есть очень простой веб-сайт RoR, и мне нужно начать писать для него несколько тестов RSpec. У меня есть страница «О себе», которая не требует авторизованного пользователя и управляется моим PagesController. Страница "О нас" отлично работает при запуске из браузера. Я просто пытаюсь проверить это, как в учебнике RoR.

Я использую Rails 3, RSpec 2.7.0, Windows

pages_controller.rb:

class PagesController < ApplicationController
    def about
    end
end

pages_controller_spec.rb:

require 'spec_helper'
describe "PagesController" do
    describe "GET 'about'" do
        render_views
        it "should be successful" do
            get 'about'
            response.should be_success
        end
    end
end

Что бы это ни стоило, вот мой spec_helper.rb:

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'rspec/autorun'
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
RSpec.configure do |config|
    config.include RSpec::Rails::ControllerExampleGroup
    config.mock_with :rspec
    config.fixture_path = "#{::Rails.root}/spec/fixtures"
    config.use_transactional_fixtures = true
    config.infer_base_class_for_anonymous_controllers = false
end

Но когда я запустите тест, я получаю:

Failures:

1) PagesController GET 'about' should be successful
  Failure/Error: get 'about'
   RuntimeError:
     @controller is nil: make sure you set it in your test's setup method.
     # ./spec/controllers/pages_controller_spec.rb:12:in `block (3 levels) in <top (required)>'

Любая помощь приветствуется. Я знаю, что это должно быть легко! Спасибо !! Джейкоб

9
задан Jacob 16 November 2011 в 20:00
поделиться