2011-03-21 38 views
3

我試圖做到這一點:rspec的 - 爲什麼be_valid不行

describe "should fail on create if the name is shorter than 5 characters" do 
    group = Factory.build(:group, :name => "a") 
    group.should be_invalid 
    group.should have(1).error_on(:name) 
    end 

,但我得到了以下錯誤:

/spec/models/group_model_spec.rb:22: undefined local variable or method `be_valid' for #<Class:0x105d13ed0> (NameError) 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:132:in `module_eval' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:132:in `subclass' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:119:in `describe' 
    from /xxxx/spec/models/group_model_spec.rb:15 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:132:in `module_eval' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:132:in `subclass' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/example_group.rb:119:in `describe' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/extensions/object.rb:6:in `describe' 
    from /Users/bhellman/Sites/companyline/spec/models/group_model_spec.rb:3 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `load' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `load_spec_files' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `map' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/configuration.rb:386:in `load_spec_files' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/command_line.rb:18:in `run' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:55:in `run_in_process' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:46:in `run' 
    from /Library/Ruby/Gems/1.8/gems/rspec-core-2.5.1/lib/rspec/core/runner.rb:10:in `autorun' 
    from /usr/bin/rspec:19 

想法?由於

+0

你,包括你的spec_helper文件rspec的? – 2011-03-21 23:58:54

+0

當我忘記打開該塊時,發生這種情況:「應該等待」(不做) – wesgarrison 2013-05-24 15:00:16

回答

6

這是正確的語法:

group.should_not be_valid 
+0

be_invalid應該可用但通過 – 2011-03-21 23:58:27

+0

同樣的問題「未定義的局部變量或方法be_valid爲#(NameError) 「 – AnApprentice 2011-03-22 00:01:36

+0

你在規範中是否有」require'spec_helper'「? – Spyros 2011-03-22 00:03:04