Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Testing with RSpec in RoR application - uninitialized constant

I'm trying to test my Rails 3.2.3 application by RSpec. It's installed (I already tested another application and it worked well) but it doesn't exist in Gemfile. Here is the code of spec/application_controller_spec.rb

    require "rspec"
    require_relative "../app/controllers/application_controller"

    describe ApplicationController do
      it "current_cart does something" do
        #app_controller  = ApplicationController.new
        pending
      end
    end

The following command returns an error:

alex@ubuntu:~/RubymineProjects/psg$ rspec spec
/home/alex/RubymineProjects/psg/app/controllers/application_controller.rb:1:in `<top (required)>': uninitialized constant ActionController (NameError)
    from /home/alex/RubymineProjects/psg/spec/application_controller_spec.rb:2:in `require_relative'
    from /home/alex/RubymineProjects/psg/spec/application_controller_spec.rb:2:in `<top (required)>'
    from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load'
    from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `block in load_spec_files'
    from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `map'
    from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.11.1/lib/rspec/core/configuration.rb:780:in `load_spec_files'
    from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.11.1/lib/rspec/core/command_line.rb:22:in `run'
    from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:69:in `run'
    from /home/alex/.rvm/gems/ruby-1.9.3-p194/gems/rspec-core-2.11.1/lib/rspec/core/runner.rb:8:in `block in autorun'

The file ApplicationController.rb

 class ApplicationController < ActionController::Base
   def some_action
     #............
   end

end

Even when I add gem 'rspec' in Gemfile it won't change anything, the error will remain.

Any thoughts?

like image 730
Alexandre Avatar asked Aug 09 '12 08:08

Alexandre


1 Answers

In my case I needed to add rails_helper either to the spec file or the .rspec file.

require 'spec_helper'
require 'rails_helper'

describe SomeController do
end

# Or in the .rspec file:
--color
--require spec_helper
--require rails_helper
like image 153
sergserg Avatar answered Sep 30 '22 16:09

sergserg