2015-07-09 2 views
0

У меня есть этот кусок кода в моем рецепте, теперь я хочу написать chefspec для проверки кода до его выполнения на узле.chefspec для тестирования databag в рецепте

У меня есть googled для некоторого образца spec рецепта, но я не мог найти ничего связанного с databags.

userlist = data_bag('systemuser') 

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

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

Мне нужна помощь в написании спецификации для тестирования вышеупомянутого кода.

ответ

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 

 Смежные вопросы

  • Нет связанных вопросов^_^