2011-09-17 75 views
1

我使用Ruby on Rails的3.0.9和RSpec 2.我想知道我怎麼可以\應該運行以下驗證馬託測試:如何測試條件驗證?

class User < ActiveRecord::Base 
    validates :firstname, :unless => :condition, 
    :presence => true, 
    ... 
end 

我的意思是:unless => :condition部分。

回答

3

通過創建滿足或不符合條件的對象並查看它們是否有效/無效。

9

我假設你已經在Active Model上使用shoulda matchers來測試這種驗證。

在這種情況下,你總是可以控制你對之前你應該「斷言」喜歡使用「主題」塊檢測一下實例驗證:(爲:除非情況)

context "testing validations" do 
    subject do 
    #Create object satisfying :condition 
    end 
    should_not validate_presence_of :first name 
end 

和上述的對象情況。