0

如果我是菜鸟,那么抱歉,但是...我对 rspec/ruby 等还是很陌生,我正在努力解决一些问题。给定以下 rspec-puppet 片段:

if os == 'Ubuntu'
  let(:facts) do
    {
      architecture: 'amd64',
      operatingsystem: 'Ubuntu',
    }
  end

  it { is_expected.to contain_service('docker').with_hasrestart('true') }

  context 'It should include default prerequired_packages' do
    it { is_expected.to contain_package('cgroup-lite').with_ensure('present') }
    it { is_expected.to contain_package('apparmor').with_ensure('present') }
  end
end

我们有这些函数(对象?)contain_service(),并且contain_package()似乎有类似with_hasrestartand的方法with_ensure。我想了解的是,这些功能是什么?它们是 rspec-puppet 的一部分吗?我似乎无法在 GitHub 中找到它们,并且文档并没有真正解释它。我正在尝试为每个方法找到所有可用的方法,以更好地理解这一切——源代码会很棒。任何人都可以提供一些解释它的信息/文档吗?

非常感谢,

戴夫

编辑:看起来我的 RTFM 不够。看来这些是“匹配器”,contain_package在代码中搜索永远不会起作用。

4

1 回答 1

0

回答我自己的帖子,但我怀疑有人真的需要这个。

这些是“匹配器”,特别是这里的通用匹配器。它们是rspec-puppet软件包的一部分:https ://github.com/rodjek/rspec-puppet/blob/master/lib/rspec-puppet/matchers/create_generic.rb

你基本上可以做contain_<puppet resource>,那些方法with_ensure就像with_<resource parameter>.

于 2020-07-08T12:26:08.720 回答