有没有办法匹配"任何价值" rspec-puppet中的参数

时间:2017-08-17 12:10:40

标签: rspec puppet rspec-puppet

我正在测试一个资源,我想检查它是否具有正确数量的参数,但其中一个是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已对此进行了测试。

1 个答案:

答案 0 :(得分:0)

是的,Rspec-puppet支持regexp,如果你想说"需要任何东西"与only_with一起你可以写:

  it {
    is_expected.to contain_foo('bar').only_with({
      'param1'  => 'val1',
      'param2'  => 'val2',
      'require' => //,
    })
  }