0

application.rb ファイルに以下を追加しました

config.generators do |g|
    g.test_framework :rspec,

        :fixtures => true,
        :view_specs => false,
        :helper_specs => false,
        :routing_specs => false,
        :controller_specs => true,
        :request_specs => true

    g.fixture_replacement :factory_girl, :dir => "spec/factories"
end

次に、コントローラーを生成しました

$rails g controller home index

これにより、次のような spec/controllers/home_controller_spec.rb に仕様が生成されました

describe HomeController do

  describe "GET 'index'" do
    it "returns http success" do
      get 'index'
      response.should be_success
    end
  end

end

これは、rSpec によって生成されるデフォルトのコードです。アクセスするとページが表示されます

http://localhost:3000/home/index 

私のブラウザで

それから私が走るとき

$bundle exec rspec

このエラーが発生します

/Applications/MAMP/htdocs/2012/myapp/spec/controllers/home_controller_spec.rb:3:in `<top (required)>': uninitialized constant HomeController (NameError)
from /Users/bobwood/.rvm/gems/ruby-1.9.3-p194@myapp/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load'
from /Users/bobwood/.rvm/gems/ruby-1.9.3-p194@myapp/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `block in load_spec_files'
from /Users/bobwood/.rvm/gems/ruby-1.9.3-p194@myapp/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `map'
from /Users/bobwood/.rvm/gems/ruby-1.9.3-p194@myapp/gems/rspec-core-2.10.1/lib/rspec/core/configuration.rb:746:in `load_spec_files'
from /Users/bobwood/.rvm/gems/ruby-1.9.3-p194@myapp/gems/rspec-core-2.10.1/lib/rspec/core/command_line.rb:22:in `run'
from /Users/bobwood/.rvm/gems/ruby-1.9.3-p194@myapp/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:69:in `run'
from /Users/bobwood/.rvm/gems/ruby-1.9.3-p194@myapp/gems/rspec-core-2.10.1/lib/rspec/core/runner.rb:10:in `block in autorun'

このエラーの意味と修正方法を教えてください。

編集:routes.rbには1行あります

get "home/index"
4

1 に答える 1

1

このエラーは、実行する spec ファイルがクラスを認識していないことを意味しますHomeController- それは含まれていません。

Rails で RSpec を使用するために、より難しい方法を選択したと思います。最も簡単な方法は、rspec-railsを使用することです。コントローラーの仕様を調べたところ、最初に行うことはrspec_helper.rb、rspec-rails に由来する を含めることです。このファイルは、テストに必要なすべての Rails クラスをロードするために使用されると思います。

rspec-rails をインストールするには、それを Gemfile に追加して実行するだけです。

rails generate rspec:install

于 2012-11-28T09:40:48.887 に答える