Chef infra 杂散ruby变量的chefspec测试

Chef infra 杂散ruby变量的chefspec测试,chef-infra,chefspec,Chef Infra,Chefspec,在这里,我返回变量中提供者的状态,如何在chefspec中模拟该状态以进行测试 ret = yum_package 'blah' do action :install end cookbook_file "/etc/init.d/blah" do source "blah" only_if { ret.updated_by_last_action? } end 我对这项工作表示怀疑,ret.update\u by\u last\u action?是在编译时在提供程序未运

在这里,我返回变量中提供者的状态,如何在chefspec中模拟该状态以进行测试

ret = yum_package 'blah' do
   action :install
end   
cookbook_file "/etc/init.d/blah" do
   source "blah"
   only_if { ret.updated_by_last_action? }
end

我对这项工作表示怀疑,
ret.update\u by\u last\u action?
是在编译时在提供程序未运行时进行评估的

建议的方法是这样使用:

yum_程序包“诸如此类”吗
操作:安装
通知:创建“cookbook_文件[/etc/init.d/blah]”,:立即
结束
食谱文件“/etc/init.d/blah”do
行动:没什么
来源“废话”
结束
然后,您可以期望和文件被创建

规范示例:

blah_package=chef_run.yup_package('blah'))
期望(blah_package).to通知('cookbook_file[/etc/init.d/blah]”)。to(:create)。立即
期望(chef_run).呈现_文件('/etc/init.d/blah'))