2013-03-23 63 views
0

为什么会出现此错误?怎么修?未定义的方法'有效吗?'为#<Class:0x94b626c>

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 

第二次测试工作正常,我怎么能得到第一个通过?我只是希望它检查模型是否存在

+0

对User类的实例而不是User类本身有效吗? – pjumble 2013-03-23 00:17:34

+0

是的。我如何检查课程是否存在? – 2013-03-23 00:21:58

回答

1

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

+0

好点。缺点是,失败然后发​​生在所有的用户测试上,而不是突出模型本身不存在的事实。我正在尝试的一个选项是User.all.count.should == 0 – 2013-03-23 00:25:35

0

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

相关问题