我是单元测试和chefspec的新手。我正在尝试从依赖库中模拟/拦截配方中的函数调用
图书馆
module Helper def do_something_useful return "http://example.com/file.txt" end end
食谱
remote_file '/save/file/here' do extend Helper source do_something_useful end
我尝试了以下方法:
厨师规格
allow_any_instance_of(Chef::Resource::RemoteFile).to receive(:do_something_useful).and_return('foobar') allow_any_instance_of(Chef::Resource).to receive(:do_something_useful).and_return('foobar')
我也尝试过用双重模拟:
helper = double Helper.stub(:new).and_return(helper) allow(helper).to receive(:do_something_useful).and_return('foobar')
这失败了
uninitialized constant Helper