0

レシピにこのコードがあり、ノードで実行される前にコードをテストするためのchefspecを書きたいと思います。

サンプルスペックのレシピをグーグルで検索しましたが、データバッグに関連するものは見つかりませんでした。

userlist = data_bag('systemuser')

userlist.each do | identifier|
  users = data_bag_item('systemuser', identifier)

  user(users['id']) do
    comment users['comment']
  end
end

上記のコードをテストするための仕様の書き方について、助けが必要です。

4

1 に答える 1

0

データ バッグのサンプルがない場合は、さらに開発するための基本モデルを次に示します。

require 'chefspec'

describe 'cookbookname::recipename' do
  let(:chef_run) { ChefSpec::SoloRunner.converge(described_recipe) }

  context 'when the data_bag is not stubbed' do
    it 'raises an exception' do
      expect {
        chef_run
      }.to raise_error(ChefSpec::Error::DataBagNotStubbed)
    end
  end
  context 'stub array test' do
     it 'does not raise an exception' do
       stub_data_bag('systemuser').and_return([
          { id: 1, comment: 'delicious' },
          { id: 2, comment: 'also good' }
         ])
       expect { chef_run }.to_not raise_error
     end
  end

end
于 2015-07-10T21:39:00.993 に答える