ChefSpec - 资源内的Stub方法

时间:2017-04-04 01:03:52

标签: ruby rspec chef chefspec

有没有办法使用测试值存根方法调用?例如,我希望get_folder_name返回' test'在我的ChefSpec测试期间

directory 'Log_Folder' do
    def get_folder_name
      'c:\temp\folder'
    end

    action :create
    path get_folder_name
end

试过这个,但它并没有取代价值。

before do
  allow_any_instance_of(Chef::Resource).to receive(:get_folder_name).and_return('test')
end

1 个答案:

答案 0 :(得分:0)

所以问题可能是因为这个方法是像这样在线声明的,所以它会一直覆盖存根。您可以尝试allow_any_instance_of(Chef::Resource::Directory)或类似的,但我可能会将此逻辑移动到自定义资源,在那里它可以更自然地存在。

相关问题