我们希望让我们的Rspec Puppet测试将params.pp
的内容读入哈希并验证该哈希中没有意外的元素。
我发现的所有信息都介绍了如何通过let (:params)
设置测试参数。
我们已经这样做了,但想做expect params.keys.sort.to eq ('param1', 'param2', 'param3')
之类的事情,但不知道如何将params.pp
的内容放入我们可以在测试中使用的变量中。< / p>
我们正在使用Puppet 3.7.5。
答案 0 :(得分:0)
名为params.pp
的Puppet清单的内容通常是Puppet类的定义,其简单名称为“params”(或者可能是具有该名称的已定义类型)。模块在“params类”模式的实现中使用这样的类是相当常见的,其中类的目的是通过其类变量提供模块中其他类的类参数的默认值。
因此,我认为你打算做的是将类变量的名称和值收集到哈希中来测试它们,但是这样的测试超出了rspec-puppet的范围:
当Puppet将您的清单编译成Puppet资源目录时,可以测试Pspet的行为。
换句话说,rspec-puppet用于测试目录编译过程及其结果。如果您检查可用的匹配器,您将看到这是他们的重点。不是参数的类变量(例如params类的那些)的值不会在编译的目录中包含它们,因此它们不受puppet-rspec的测试。您可以测试这些值是否反映在目录中包含 的资源的参数中,但目录中不包含任何可用但未使用的变量的信息。