如何为validates_uniqueness_of写一个测试,范围和存在:true RSpec Rails。

问题描述 投票:0回答:1

试图写一个测试来验证 :user_id 与 scope :board_id 的唯一性。

模型。

class Membership < ApplicationRecord
  belongs_to :board
  belongs_to :user
  validates_uniqueness_of :user_id, scope: :board_id, presence: true
end

我试着像这样测试

it { should validate_uniqueness_of(:user_id) } 
it expect.to have_many(:membership).through(:board_id)

谢谢你的帮助

ruby-on-rails testing rspec scope rspec-rails
1个回答
2
投票

如果使用shoulda-matchers,可以用两个期望值来完成(即使是一个模型行)。

it { should validate_presence_of(:user_id) }
it { should validate_uniqueness_of(:user_id).scoped_to(:board_id) }
© www.soinside.com 2019 - 2024. All rights reserved.