0

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

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

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

4

1 回答 1

3

您可以检查它是否respond_to?带有经过审核的 gem 的某些方法。像

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

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

User.auditing_enabled

当审核存在时,默认返回 true。

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

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">

然后,您可以轻松地检查相关审核是否符合您的要求。

于 2019-03-06T13:11:38.833 回答