我正在测试一个资源,我想检查它是否具有正确数量的参数,但其中一个是require
,我还没知道如何匹配with
1}}。我使用that_requires
测试关系是否正确。我目前的测试看起来像
context 'xldeploy_environment_member' do
env = "Environments/#{company_short}/#{environment_short}/#{sn_environment}"
name = "#{env}/#{website}"
dict = "#{env}/dict.#{website}"
infhost = "Infrastructure/IIS/#{hostname}"
it { is_expected.to contain_xldeploy_environment_member(name).with({
:id => name,
:ensure => 'present',
:env => name,
:dictionaries => [dict],
:members => ["#{infhost}/#{website}", infhost],
}.merge($xldeploy_defaults))}
it { is_expected.to contain_xldeploy_environment_member(name).that_requires(
"Xldeploy_ci[#{name}]")
}
end
但我想将with
替换为only_with
,因为with
将允许在没有相应测试的情况下添加额外参数。如果有parameter_count
检查,就像有resource_count
检查我可以使用它。 rspec-puppet
是否支持匹配正则表达式,以便我可以检查参数是否存在?我对实际内容不感兴趣,因为that_requires
已对此进行了测试。
答案 0 :(得分:0)
是的,Rspec-puppet支持regexp,如果你想说"需要任何东西"与only_with
一起你可以写:
it {
is_expected.to contain_foo('bar').only_with({
'param1' => 'val1',
'param2' => 'val2',
'require' => //,
})
}