2017-04-04 3 views
1

テスト値を使用してメソッド呼び出しをスタブする方法はありますか?例えば、私は私のChefSpecテストChefSpec - リソース内のスタブメソッド

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

    action :create 
    path get_folder_name 
end 

中に「テスト」を返すようにget_folder_nameたい、これを試みたが、それが値を置き換えるものではありません。

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(Chef :: Recipe)を使ってみましたが、うまくいきませんでした。 – chief7

関連する問題