测试模型是否在没有 RSpec 的情况下被审计

Testing if model is audited without RSpec

我使用 audited gem 来审核我模型上的所有更改。在 gem 规范 (https://www.rubydoc.info/github/collectiveidea/audited/Audited/RspecMatchers) 中,我们可以找到如何使用 RSpec 对其进行测试的信息,即:

it { should be_audited }
it { should be_audited.associated_with(:user) }

我想做类似的测试但没有 RSpec - 有什么建议如何做吗?

您可以检查它是否 respond_to? 某些方法随附已审核 gem。 喜欢

User.respond_to?(:audited)
# or
User.respond_to?(:audits)

您也可以使用自述文件中的 auditing_enabled 选项。

User.auditing_enabled

这个 returns 在审核时默认为真。

相关审计也是如此。只需为您的关系构建一个数据结构,并检查审计是否等于您的预期结果。 以审计自述文件中的这个例子为例:

company = Company.create!(name: "Collective Idea")
user = company.users.create!(name: "Steve")
user.update_attribute!(name: "Steve Richert")
user.audits.last.associated # => #<Company name: "Collective Idea">
company.associated_audits.last.auditable # => #<User name: "Steve Richert">

在那里您可以轻松地检查相关的审核是否符合您的要求。