我正在写一本食谱,当然我需要对它进行单元测试。 这本食谱实际上没有任何食谱,但提供了定义。
我决定使用编程方法为单元测试定义创建配方,但我一直陷入错误:
undefined method `definitions' for nil:NilClass
以下是当前代码:
describe '#nginx_site (definition)' do
def fake_recipe(run, &block)
recipe = Chef::Recipe.new('nginxsite', 'mockrecipe', run.run_context)
recipe.instance_eval(&block)
end
let :chef_run do
ChefSpec::SoloRunner.new(platform: 'ubuntu', version: '14.04')
end
it 'should do some magic' do
recipe = fake_recipe(chef_run) do
nginx_site 'foo' do
enable true
end
end
chef_run.converge(recipe)
end
end