2017-04-04 61 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