3

我有一个自定义验证器(位于 app/validators/uri_validator.rb),用于:

validates :link, uri: true

如何在我的规范中指定这一点?

理想情况下,我想打一个单线电话,例如:

it { should validate_uri_of(:link) }

我该怎么做呢?

4

2 回答 2

3

另一种选择是使用allow_value匹配器,虽然并不理想,但它可以在某些情况下工作。

it { should allow_value(value_which_is_valid).for(:link) }
it { should_not allow_value(value_which_is_invalid).for(:link) }
于 2012-06-25T13:27:46.970 回答
3

使用 factory girl 构建一个包含无效数据和一个包含有效数据的模型对象,并调用 be_valid 匹配器。

#factory girl
build(:model, link: valid_uri).should be_valid
build(:model, link: invalid_uri).should_not be_valid
于 2012-06-12T13:30:21.933 回答