令人困惑的 Rspec-puppet 弃用警告:默认 mock_with 为 :mocha

Confusing Rspec-puppet deprecation warning: defaults mock_with to :mocha

当 运行 Rspec-puppet 测试时,出现弃用警告:

Deprecation Warnings:

puppetlabs_spec_helper: defaults `mock_with` to `:mocha`.
  See https://github.com/puppetlabs/puppetlabs_spec_helper#mock_with
  to choose a sensible value for you

因此,我设置了一个 spec_helper 块,如下所示:

RSpec.configure do |c|
  c.mock_with :mocha
  ...
end

正如文档 here 所建议的那样。但警告仍然存在。怎么了?

实际上需要打开两个配置块,而mock_with配置必须在puppetlabs_spec_helper之前声明。

换句话说,像这样:

RSpec.configure do |c|
  c.mock_with :rspec
end

require 'puppetlabs_spec_helper/module_spec_helper'

RSpec.configure do |c|
  c.formatter = :documentation
  c.tty       = true
  ...
end

另请参阅 here 中的讨论。

我在这里提出并回答了这个问题,以便在某处记录这种令人困惑的行为,因为无论文档多么清晰,这都会继续使人们感到困惑。