2017-04-04 62 views
1

有没有办法用测试值存根方法调用?例如,我想我的get_folder_name测试ChefSpecChefSpec - 资源内部的存根方法

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 

回答

0

所以问题可能是因为该方法是这样声明的,它会一直覆盖存根。你可以尝试allow_any_instance_of(Chef::Resource::Directory)或类似的,但我可能会将这个逻辑移动到一个自定义资源,它可以稍微更自然地被钉住。

+0

添加“:: Directory”不起作用。如果我将该方法移至配方而不是资源,该怎么办?我尝试使用allow_any_instance_of(厨师::食谱),但也没有工作。 – chief7