2010-03-30 92 views
2

我试图在我正在研究的一个新的rails 3项目中添加一些规范,而我的第一个测试似乎无法找到模型。rspec&rails 3找不到模型对象

我已经安装使用命令行RSpec的:

sudo gem install rspec --pre 

,然后我把我的Gemfile

gem "rspec-rails", ">= 2.0.0.beta.1" 

下列但是当我运行我的测试,我得到

./spec/models/world_spec.rb:1: uninitialized constant World (NameError) 
rake aborted! 
Command /opt/local/bin/ruby -Ilib -Ispec "./spec/models/world_spec.rb" failed 
/opt/local/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.4/lib/rspec/core/rake_task.rb:71:in 'define' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1112:in 'verbose' 
/opt/local/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.4/lib/rspec/core/rake_task.rb:57:in 'send' 
/opt/local/lib/ruby/gems/1.8/gems/rspec-core-2.0.0.beta.4/lib/rspec/core/rake_task.rb:57:in 'define' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in 'call' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:636:in 'execute' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in 'each' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:631:in 'execute' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:597:in 'invoke_with_call_chain' 
/opt/local/lib/ruby/1.8/monitor.rb:242:in 'synchronize' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:590:in 'invoke_with_call_chain' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:583:in 'invoke' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in 'invoke_task' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in 'top_level' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in 'each' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in 'top_level' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in 'standard_exception_handling' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in 'top_level' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in 'run' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in 'standard_exception_handling' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in 'run' 
/opt/local/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31 
/opt/local/bin/rake:19:in 'load' 
/opt/local/bin/rake:19 

我的规格在spec/models/world_spec.rb,看起来像

describe World, "#hello" do 
     it "should be invalid" do 
     World.new.should be_invalid? 
     end 
    end 

我试图添加一条线,如require "app/model/world"require "world",但没有成功。

有谁知道我在做什么错?

回答

4

似乎在轨道3,我需要require 'spec_helper'

require 'spec_helper' 

describe World do 
    it "should be invalid" do 
    World.new.should be_invalid? 
    end 
end 

但是,这可能只是因为我从rake spec如果你使用watchr或一些其他的机制,你也许能弄完运行它为你。

+0

你有什么spec_helper? – CanCeylan 2012-12-25 12:25:58