第三方 gem 中的 RSpec 语法扩展

一些宝石,例如 cancancanaction_policypundit 提供了它们自己的 RSpec 语法扩展和别名。同样,像 test-profrspec-itssaharspec 这样的 RSpec 扩展也是如此。

默认情况下,RuboCop RSpec 不了解这些语法扩展,并且不打算在默认配置文件中收集所有这些扩展。宝石可以为 RuboCop RSpec 提供配置,以允许正确检测 RSpec 元素。RuboCop 允许第三方宝石配置 RuboCop

为 RuboCop RSpec 打包配置

由于 一个 bug,此功能在 rubocop-rspec 2.5.0 及更早版本中无法正常工作。

对于第三方宝石,只需遵循三个步骤

  1. 提供一个配置文件(例如 .rubocop_rspec_alias_config.ymlconfig/rubocop-rspec.yml)。请查看 RSpec DSL 配置,了解如何配置 RSpec 语法的不同元素。

  2. 在他们的文档中添加一个部分,说明用户如何通过使用 RuboCop RSpec 来充分检测他们的语法扩展而受益。示例

    ## Usage with RuboCop RSpec
    Please add the following to your `.rubocop.yml` to make RuboCop RSpec aware of our cool syntax extensions:
      inherit_gem:
        third-party-gem: .rubocop_rspec_alias_config.yml
  3. 通过更新他们的 gemspec’s `spec.files 来包含配置文件,以包含上述配置文件。

查看拉取请求:test-profaction_policy,了解一个不太简单的示例。