使用RSpec Rails测试模型中的papertrail

时间:2016-06-22 03:34:40

标签: ruby-on-rails ruby unit-testing rspec paper-trail-gem

我添加了一个ActiveSupport::Concern,它在类方法中声明has_paper_trail以及一些其他选项。这个问题包含在实际模型中,现在可以通过papertrail

启用版本控制

现在我想仅在模拟模型上使用RSpec(数据库中当前不存在)来测试这个问题,并确保版本表被正确填充。

所以我有一个RSpec,我这样做:

describe PapertrailConcern do
  before(:all) do
    class PaperTrailModel < ActiveRecord::Base
      include PapertrailConcern

      has_paper_trail
    end
  end

  it 'stores changes to model in paper trail versions' do
    # check if PaperTrailModel attribute changes are tracked in versions
  end
end

由于PaperTrail模型在数据库中不存在,如果我对它进行任何操作,我会收到此错误:

  PG::UndefinedTable: ERROR:  relation "paper_trail_models" does not exist
       LINE 5:                WHERE a.attrelid = '"paper_trail_models"'::re...
                                                 ^

我还考虑过使用Rspec Mock Model,但我不确定如何在模拟模型上启用papertrail版本控制。在网上找不到任何东西

有没有人遇到过这个问题,或者碰巧知道如何申报测试模型并测试papertrail版本控制是否正常工作?

0 个答案:

没有答案