测试记录是否与RSpec中的另一个记录重复

时间:2019-05-17 16:54:14

标签: ruby-on-rails rspec rspec-rails

在经过RSpec测试的Rails应用中,我正在测试在某些记录上calls .dup()并保存重复项的功能。如何测试新创建的记录是否与预期的原始记录重复?

我怀疑是否有针对此特定案例的主张。而且我始终可以确保重复记录和原始记录的属性值相同,但记录不同。我想知道这种测试是否有一种更优雅,更容易接受的模式。

2 个答案:

答案 0 :(得分:6)

您可以使用have_attributes断言。

match_attributes = first_user.attributes.except(:id, :created_at, :updated_at)

expect(second_user).to have_attributes(match_attributes)

答案 1 :(得分:0)

您可以这样处理:

 it 'creates a duplicate' do 
    record = Record.find(1) 
    new_record = record.dup
    new_record.save 
    expect(Record.where(id: [record.id,new_record.id], 
           **new_record.attributes.except(:id, :created_at, :updated_at)
           ).count
    ).to eq 2
 end

这应该量化一次记录中两个记录的重复和持久性。