ruby-on-rails – Rspec,shoulda,validate_uniqueness_of具有范
发布时间:2020-12-16 20:36:21 所属栏目:百科 来源:网络整理
导读:我有以下Rspec测试: describe Productlimit do before(:each) do @productlimit = Factory.create(:productlimit,:user = Factory.create(:user)) end subject { @productlimit } ... it { should validate_uniqueness_of(:price_cents).scoped_to(:directi
我有以下Rspec测试:
describe Productlimit do before(:each) do @productlimit = Factory.create(:productlimit,:user => Factory.create(:user)) end subject { @productlimit } ... it { should validate_uniqueness_of(:price_cents).scoped_to(:direction_down,:currency,:market_id,:user_id) } ... end 但我得到以下混乱的错误: 1) Productlimit Failure/Error: it { should validate_uniqueness_of(:price_cents).scoped_to(:direction_down,:user_id) } Expected errors to include "has already been taken" when price_cents is set to 9530,got errors: ["direction_down has already been taken (false)"] 你可以帮我吗?我不明白为什么这不工作,因为错误信息似乎是正确的? 编辑: 在其他情况下也会发生这种情况: # product_spec.rb ... it { should validate_numericality_of(:price).with_message("price_cents must be greater than 0 (0)") } # rake spec:models Failure/Error: it { should validate_numericality_of(:price).with_message("price_cents must be greater than 0 (0)") } Expected errors to include "price_cents must be greater than 0 (0)" when price is set to "abcd",got errors: ["price_cents must be greater than 0 (0)"] 解决方法
要检查validate_uniqueness_of(:field),但是为此,您应该在数据库中租用一个记录来检查uniquness约束.
这是…. before do @country = FactoryGirl.create(:country,:id =>"a0000007-0000-0000-0000-000000000009",:currency_id => "a0000006-0000-0000-0000-000000000004",:merchant_id => "a0000001-0000-0000-0000-000000000002",:country_code => 'CAN',:name => 'Canada') end 验证唯一性 it { should validate_uniqueness_of(:country_code)} 它会努力尝试. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |