Отвечая себя, на всякий случай, если кто-то может оказаться полезным:
Я закончил с примером, как это:
it 'renders config file with proper data on node ABC in environment XYZ' do
runner = ChefSpec::Runner.new
node_attr = JSON.parse(File.open('nodes/ABC.json'))
runner.node.consume_attributes(node_attr)
env_attr = JSON.parse(File.open('environments/XYZ.json'))
env = Chef::Environment.json_create(env_attr)
runner.node.stub(:chef_environment).and_return('XYZ')
Chef::Environment.stub(:load).and_return(env)
runner.converge('cookbook::recipe')
expect(runner).to render_file('/etc/cookbook.cfg').with_content('some data from ABC.json')
end
Это работает с "моно литийный шеф-повар репо ", который я использую на этом раннем этапе принятия нашего шеф-повара - на самом деле мы используем chef-solo, но в структуре папок, которая пытается быть совместимой с рефером шеф-повара.
Кроме того, я не хочу проверять регрессии во время всей необходимой реструктуризации без скорости ChefSpec!
Похоже, вы ответили на свой вопрос. Не могли бы вы отметить правильный ответ? – sethvargo