0

我们想让我们的 Rspec Puppet 测试将 的内容读params.pp入散列,并验证该散列中没有意外元素。

我找到的所有信息都描述了如何通过let (:params).

我们已经这样做了,但想做类似的事情expect params.keys.sort.to eq ('param1', 'param2', 'param3'),但不知道如何将 的内容params.pp放入我们可以在测试中使用的变量中。

我们正在使用 Puppet 3.7.5。

4

1 回答 1

0

命名为 Puppet 清单的内容params.pp通常是简单名称为“params”(或可能具有该名称的已定义类型)的 Puppet 类的定义。模块在“参数类”模式的实现中使用这样的类是相当普遍的,其中类的目的是通过其类变量为模块中其他类的类参数提供默认值。

因此,我想您建议将类变量的名称和值收集到一个哈希中以测试它们,但是这样的测试超出了 rspec-puppet 的范围:

Rspec-puppet 测试用于测试 Puppet 在将清单编译成 Puppet 资源目录时的行为。

( Rspec-puppet 教程)

换句话说,rspec-puppet 用于测试目录编译过程及其结果。如果您检查可用的匹配器,您会发现这是他们的重点。但是,不是参数的类变量的值(例如 params 类的值)不作为本身包含在编译目录中,因此它们不受 puppet-rspec 测试的影响。您可以测试这些值是否反映在目录包含的资源参数中,但目录中不包含任何有关可用但未使用的变量的信息。

于 2016-07-13T16:28:07.820 回答