2009-06-05 61 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) 

注意,我傾向於在模型試驗(單元測試)水平要做到這一點 - 我查的事情的結果是在無效功能和集成水平。