单元测试Chef定义:nil的未定义方法`definitions':NilClass

时间:2015-08-18 04:00:52

标签: ruby unit-testing chef

我正在写一本食谱,当然我需要对它进行单元测试。 这本食谱实际上没有任何食谱,但提供了定义。

我决定使用编程方法为单元测试定义创建配方,但我一直陷入错误:

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

0 个答案:

没有答案