2012-07-29 89 views
0

你如何模擬一個屬性的validates :name, uniqueness: true回調?嘲笑驗證唯一性回調

我想象它會工作是這樣的:

describe "with duplicate name" do 
    before { mock(subject.name).unique? { false } } 

    it "should be invalid" do 
    subject.should have(1).error_on(:name) 
    end 

回答

1

爲什麼不使用shoulda matchers?有了它,您可以測試標準的通用導軌功能,例如it { should validate_uniqueness_of(:name) }。我發現它更具可讀性,並且免去了嘲笑回調和準備測試用例的需要。

+0

謝謝魏。 Shoulda絕對乾淨,但我認爲我不能證明爲這個規範撕掉了我的其餘測試! – vladiim 2012-07-30 11:34:06

+0

你的意思是把你的其他測試劃掉?像其他驗證,並通過嘲笑測試? – Wei 2012-07-30 15:01:31