未定义的方法`有效吗?'对于#<class:0x94b626c> </class:0x94b626c>

时间:2013-03-23 00:14:50

标签: ruby testing rspec

为什么会出现此错误?怎么解决?

  1) User should exist
     Failure/Error: User.should be_valid
     NoMethodError:
       undefined method `valid?' for #<Class:0x94b626c>

测试是:

require 'spec_helper'

describe User do
  it "should exist" do
    User.should be_valid
  end 
  it "should not allow me to create a new user without required fields" do
    User.new(:email => 'bob').should_not be_valid
  end 

end

第二次测试运行正常,我怎样才能让第一个测试通过?我只想检查模型是否存在

2 个答案:

答案 0 :(得分:1)

测试一个类隐式测试它是否存在。如果该类不存在,则两个代码示例都将出错。第一个是不必要的。

答案 1 :(得分:0)

在第一次测试中将User.should be_valid替换为User.new.should be_valid。 RSpec在User类上调用valid?而不是它的实例。