我们希望将 Rspec Puppet 测试的内容params.pp
读入哈希,并验证该哈希中没有意外元素。
我找到的所有信息都描述了如何通过let (:params)
设置测试参数。
我们已经这样做了,但想做类似 expect params.keys.sort.to eq ('param1', 'param2', 'param3')
,但不知道如何将params.pp
的内容放入我们可以在测试中使用的变量中。
我们正在使用 Puppet 3.7.5。
名为 params.pp
的 Puppet 清单的内容通常是简单名称为"params"(或可能具有该名称的已定义类型)的 Puppet 类的定义。 模块在"params class"模式的实现中使用这样的类是相当常见的,其中类的目的是通过其类变量为模块中其他类的类参数提供默认值。
因此,我想您建议做的是将类变量的名称和值收集到哈希中以测试它们,但这样的测试超出了 rspec-puppet 的范围:
Rspec-puppet 测试用于测试 Puppet 在将您的清单编译到 Puppet 资源目录时的行为。
(Rspec-puppet 教程)
换句话说,rspec-puppet 用于测试目录编译过程及其结果。 如果您检查可用的匹配器,您会发现这是它们的重点。 但是,不是参数的类变量的值(例如参数类的值)不会作为自身包含在编译的目录中,因此它们不受 puppet-rspec 测试的约束。 您可以测试这些值是否反映在目录中包含的资源的参数中,但目录不包含有关可用但未使用的变量的任何信息。