2013-11-27 79 views
0

這裏是我的代碼:Rspec的不加載模型

require "user" 
require "spec_helper" 

describe User do 

end 

和spec_helper.rb文件

# This file is copied to spec/ when you run 'rails generate rspec:install' 
ENV["RAILS_ENV"] ||= 'test' 
require File.expand_path("../../config/environment", __FILE__) 
require 'rspec/rails' 
require 'rspec/autorun' 

# Requires supporting ruby files with custom matchers and macros, etc, 
# in spec/support/ and its subdirectories. 
Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } 

# Checks for pending migrations before tests are run. 
# If you are not using ActiveRecord, you can remove this line. 
ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) 

RSpec.configure do |config| 
    # ## Mock Framework 
    # 
    # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line: 
    # 
    # config.mock_with :mocha 
    # config.mock_with :flexmock 
    # config.mock_with :rr 

    # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures 
    config.fixture_path = "#{::Rails.root}/spec/fixtures" 

    # If you're not using ActiveRecord, or you'd prefer not to run each of your 
    # examples within a transaction, remove the following line or assign false 
    # instead of true. 
    config.use_transactional_fixtures = true 

    # If true, the base class of anonymous controllers will be inferred 
    # automatically. This will be the default behavior in future versions of 
    # rspec-rails. 
    config.infer_base_class_for_anonymous_controllers = false 

    # Run specs in random order to surface order dependencies. If you find an 
    # order dependency and want to debug it, you can fix the order by providing 
    # the seed, which is printed after each run. 
    #  --seed 1234 
    config.order = "random" 
end 

user_sprec.rb位於同一文件夾spec_helper.rb都inser

#{Rails.root}/spec folder 

錯誤信息我得到了當我跑「rspec user_spec.rb」

usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- user (LoadError) 
    from /usr/local/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require' 
    from /home/li/data/git/mgm/spec/user_spec.rb:1:in `<top (required)>' 
+3

你爲什麼包括'require'user''?檢查它是否有效如果你刪除它 – AbM

+0

你的user.rb看起來是什麼,該文件的位置是什麼? – usha

+0

@AbM。刪除'require'user''後,現在就可以使用! – wwli

回答

0

RSpec旨在從項目的根目錄運行。我懷疑你是從spec目錄中運行它的,這會導致你看到的錯誤。從根目錄再次嘗試,通過spec/user_spec.rb。此外,require user在您的規範中是多餘的,因爲您參考User常數會導致user.rb自動加載。