Ruby on rails Rspec/shoulda:测试是否调用了自定义验证器
我有一个自定义验证器(位于app/validators/uri_validator.rb中),用于:Ruby on rails Rspec/shoulda:测试是否调用了自定义验证器,ruby-on-rails,rspec,shoulda,Ruby On Rails,Rspec,Shoulda,我有一个自定义验证器(位于app/validators/uri_validator.rb中),用于: validates :link, uri: true 如何在规格中指定此项 理想情况下,我希望有一个单线电话,例如: it { should validate_uri_of(:link) } 如何执行此操作?使用factory girl构建包含无效数据和有效数据的模型对象,并调用be\u valid matcher #factory girl build(:model, link: vali
validates :link, uri: true
如何在规格中指定此项
理想情况下,我希望有一个单线电话,例如:
it { should validate_uri_of(:link) }
如何执行此操作?使用factory girl构建包含无效数据和有效数据的模型对象,并调用be\u valid matcher
#factory girl
build(:model, link: valid_uri).should be_valid
build(:model, link: invalid_uri).should_not be_valid
另一个选项是使用
allow_值
matcher,尽管它并不理想,但在某些情况下可以工作
it { should allow_value(value_which_is_valid).for(:link) }
it { should_not allow_value(value_which_is_invalid).for(:link) }
在测试过程中,如果可能,我会尽量不点击数据库。使用factory girl with
build
不会点击数据库,它会创建一个未保存的模型。