2017-08-17 3 views
0

私はリソースをテストしていますが、正しい数のパラメータがあることを確認したいのですが、そのうちの1つはrequireですwithで一致する方法を見つけられませんでした。私はthat_requiresを使って関係が正しいことをテストします。私の現在のテストはrspec-puppetのパラメータの「任意の値」に一致する方法はありますか

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_withwithを交換したいと思います。 resource_countチェックがあるようなparameter_countチェックがあった場合は、それを使用することができます。 rspec-puppetは正規表現でのマッチングをサポートしているので、そのパラメータがそこにあることを確認できますか?私はthat_requiresでテストされているように、実際のコンテンツには興味がありません。

+0

私はあなたが 'WITH'のチェイナへのチェーン' that_requires'できると信じて。それを試してみて、メタパラメータとして 'only_with'にチェーンすることができるかどうかを確認してください。マッチャーは標準のチェーンで覆われてはいけません。私があなたがそのコードで 'merge'を必要としているとは思っていないことと、' context'ブロックの上に定義されていると仮定して、未定義の変数も使用しています。ダイナミックな入出力イベントをテストすることにより、さらに興味深い付加価値が見られます。 –

+0

ありがとう私は連鎖しようとします。 WIPであるため、これはハードコードされています。 – smcp

答えて

0

はい、RSpecの-人形は、正規表現をサポートし、あなたが書くことができonly_withと併せて「何を必要とし、」言いたい場合:

it { 
    is_expected.to contain_foo('bar').only_with({ 
     'param1' => 'val1', 
     'param2' => 'val2', 
     'require' => //, 
    }) 
    } 
関連する問題