5

Rails3.2.3アプリケーションをRSpecでテストしようとしています。インストールされていますが(私はすでに別のアプリケーションをテストしていて、うまく機能しました)、Gemfileには存在しません。これがのコードです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

次のコマンドはエラーを返します。

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'

ファイルApplicationController.rb

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

終わり

Gemfileを追加gem 'rspec'しても何も変更されませんが、エラーは残ります。

何かご意見は?

4

3 に答える 3

7

私の場合rails_helper、スペックファイルまたはファイルのいずれかに追加する必要がありました.rspec

require 'spec_helper'
require 'rails_helper'

describe SomeController do
end

# Or in the .rspec file:
--color
--require spec_helper
--require rails_helper
于 2014-08-11T14:39:08.760 に答える
6

このrequire_relativeはそこで何をしていますか?私はrspecを使用していますが、これは必要ありません。実際、私のスペックファイルで必要なのは次のとおりです。

require 'spec_helper'

(少なくともほとんどの場合、「authlogic / test_case」のような特別なものを必要とするファイルがいくつかあります)

rspecのGemfileエントリは次のようになります。

group :development do
  gem 'rspec-rails'
end

group :test do
  gem 'rspec-rails'
  gem 'spork', '0.9.0.rc8'
end

もちろん、スポークを使用しない場合は必要ありませんが、「rspec」ではなく「rspec-rails」が問題になる可能性があります。

于 2012-08-09T08:51:59.617 に答える
1

私は同じ問題を抱えていましたが、それを解決したのは、スペックファイルがコントローラーファイルとまったく同じ名前になっていることを確認することでした。したがって、controller_name_controller_spec.rbはなく、controller_name_controller.rbだけです。

于 2014-07-17T09:13:08.900 に答える