使用ChefSpec测试Chef FileEdit的结果

时间:2015-05-05 11:46:27

标签: chef

我尝试使用FileEdit在文件中插入一行,如果它还不存在:

it 'adds blah to the file' do
  expect(chef_run).to render_file('/etc/environment').with_content(/^blah$/)
end

然后我尝试使用chefspec测试:

render_file

测试失败,我怀疑是因为catched不支持FileEdit。我的问题是,是否等同?或者我做了一些愚蠢的事情?

1 个答案:

答案 0 :(得分:1)

我还没有在ChefSpec中尝试这个,但我怀疑你是正确的render_file没有挂钩Chef::Util::FileEdit。我会使用Test Kitchen和BATS将此检查移动到集成测试中。在尝试了几种不同的技术后,我决定将大部分测试都写成集成测试。当我需要测试库代码时,我将其视为Ruby代码并进行直接的RSpec测试。现在我很少编写ChefSpec测试。我发现它导致测试运行非常快,但测试和食谱之间有很多重复。