【问题标题】:rspec - why does be_valid not workrspec - 为什么 be_valid 不起作用
【发布时间】:2011-03-21 22:55:03
【问题描述】:

我正在尝试这样做:

  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

想法?谢谢

【问题讨论】:

  • 您是否在您的 spec_helper 文件中包含 rspec?
  • 当我忘记打开区块时会发生这种情况:它“应该废话”(不做)

标签: ruby-on-rails ruby-on-rails-3 rspec rspec2


【解决方案1】:

这是正确的语法:

group.should_not be_valid

【讨论】:

  • be_invalid 虽然应该可用
  • 相同问题“# (NameError) 的未定义局部变量或方法 `be_valid'”
  • 您的规范中有“需要'spec_helper'”吗?
  • Beerlington,我可能错了,因为我认为 rspec 中不存在 be_invalid。
  • 啊废话,我有“描述”应该“而不是它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多