我的食谱中有这段代码,现在我想编写一个chefspec来测试代码,然后再在节点上执行。
我已经搜索了一些样本规格配方,但我找不到与数据库相关的任何内容。
userlist = data_bag('systemuser')
userlist.each do | identifier|
users = data_bag_item('systemuser', identifier)
user(users['id']) do
comment users['comment']
end
end
我需要一些关于如何编写规范来测试上述代码的帮助。
答案 0 :(得分: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