簡體   English   中英

Rails validate_uniqueness_of rspec測試失敗

[英]Rails validate_uniqueness_of rspec test fails

我試圖在具有范圍的驗證唯一性上進行測試,但是失敗了

模型

 class EcrPortMapping < ActiveRecord::Base
      belongs_to :ecr
      validates :ecr_id, presence: true
      validates :ecr_id, uniqueness: {scope: :port_source, message: I18n.t('port_target_in_use')}
      validates :ecr_id, uniqueness: {scope: :port_target, message: I18n.t('port_source_in_use')}
   end

測試

    RSpec.describe EcrPortMapping, type: :model do
  describe 'validations' do

    it 'should validate uniqueness of ecr_id scoped to port_target & port_source' do
      should validate_uniqueness_of(:ecr_id).scoped_to(:port_target)
      should validate_uniqueness_of(:ecr_id).scoped_to(:port_source)
    end

錯誤

     Failure/Error: should validate_uniqueness_of(:ecr_id).scoped_to(:port_target)
   Expected validation to be scoped to [:port_target], but it was scoped to [:port_source].

它失敗了,因為它在:port_target :port_source上都具有唯一作用域。 您可以將多個范圍傳遞給scoped_to

it 'should validate uniqueness of ecr_id scoped to port_target & port_source' do
  should validate_uniqueness_of(:ecr_id).scoped_to(:port_target, :port_source)
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM