2012-06-12 31 views
1

我有一個自定義的驗證器(位於應用程序/驗證/ uri_validator.rb),其適用於:Rspec的/早該:測試,一個自定義驗證被稱爲

validates :link, uri: true 

如何在指定本我眼鏡?

理想我想有一個線路上的呼叫,如:

it { should validate_uri_of(:link) } 

我該怎麼辦呢?

回答

1

另一種選擇是使用allow_value匹配,雖然不理想也可以在某些情況下工作。

it { should allow_value(value_which_is_valid).for(:link) } 
it { should_not allow_value(value_which_is_invalid).for(:link) } 
2

使用工廠女孩建立一個模型對象與無效的數據和一個有效的數據,並調用be_valid匹配器。

#factory girl 
build(:model, link: valid_uri).should be_valid 
build(:model, link: invalid_uri).should_not be_valid 
+0

我試着在測試過程中不嘗試擊中數據庫。 – krn

+3

使用'build'工廠女孩不會碰到數據庫,它會創建一個未保存的模型。 – nmott

相關問題