如果我在配方中使用模板资源
template '/home/user1/foo' do
source 'bar'
end
我使用 chefspec/rspec 进行测试
...
expect(chef_run).to render_file('/home/user1/foo')
expect(chef_run).to create_template('/home/user1/foo')
expect(chef_run).to create_template('/home/user1/foo').with_source 'bar
...
所有测试都通过......
即使食谱中缺少源模板“bar”。
这给我留下了一本食谱,它通过了我能想到的所有测试,但是当我尝试运行它时会失败。Cookbook_file 资源也是如此。
我可以看到如何测试资源可以查找源文件的所有位置(根据资源文档中的“文件特定性”部分)是如何成为蠕虫的,但它似乎仍然是测试工具中的一个大漏洞.
我是否忽略了一种测试源文件是否存在的方法,或者在更基本的层面上做错了什么?还是这就是它的本来面目,每个人都与之共存?