実行しているプラットフォームに応じて異なる反応をするテストを作成する最良の方法は何ですか?
私のユースケースは次のとおりです。
システムが open ssl のハートブリード バグから保護されていることを確認したいと考えています。これは、chef がインストールした openssl パッケージが最新であることを確認することを意味します。CentOS の場合、脆弱性のある最後のバージョンは 1.0.1e-15 であり、Ubuntu の場合は 1.0.1-4ubuntu5.11 です。
実行しているプラットフォームに応じて異なる反応をするテストを作成する最良の方法は何ですか?
私のユースケースは次のとおりです。
システムが open ssl のハートブリード バグから保護されていることを確認したいと考えています。これは、chef がインストールした openssl パッケージが最新であることを確認することを意味します。CentOS の場合、脆弱性のある最後のバージョンは 1.0.1e-15 であり、Ubuntu の場合は 1.0.1-4ubuntu5.11 です。
これは、使用しているテスト ランナーによって異なりますが、Serverspecの場合:
describe command('openssl --version'), :if => os[:family] == 'ubuntu' do
its(:stdout) { is_expected.to include '1.0.1-4ubuntu5.11' }
end
os[:family]
(テストされていませんが、ヘルパーの使用に注意してください)