2009-06-05 84 views
1

看起来像这样应该可以找到几个谷歌搜索......但没有运气。在Rails单元测试中测试validates_associated的优雅方法?

我在找一个优雅的测试方法在我的模型validates_associated,如...

class Network < ActiveRecord::Base 
... 
    validates_associated :transporter 
... 
end 

而且测试:

class NetworkTest < ActiveSupport::TestCase 
    test 'should not create network without valid transporter' do 
    network = Factory.build(:network) 
    assert...? 
    end 
end 

回答

1

Factory.build可能无法运行验证测试(验证测试在保存时运行,而不是创建)。

但是,一般的验证,你会做这样的事情

assert !network.valid? 
assert network.errors.invalid?(:transporter) 

注意,我倾向于在模型试验(单元测试)水平要做到这一点 - 我查的事情的结果是在无效功能和集成水平。