Chefspec как выполнить юнит-тест для update_apt_update без обновления
У меня есть следующий код шеф-повара:
apt_update 'Ubuntu apt repo update' do
subscribes :nothing, 'apt_repository[some-repo]', :immediately
end
Я пытаюсь проверить с этим кодом:
it 'updates apt repo' do
expect(chef_run).to update_apt_update('Ubuntu apt repo update')
end
Который не с
ожидается "apt_update[Ubuntu apt repo update]" с действием: update для запуска Chef.
Другие ресурсы apt_update: apt_update[обновление репозитория Ubuntu apt]
Похоже, он пытается утверждать, что мое действие - обновление, как мне заставить его не принимать на себя мои действия?
1 ответ
В chefspec вы уже сказали ему ожидать обновления_apt_update, поэтому он ожидает действия обновления от ресурса. Таким образом, оно не предполагает ваших действий и не пытается что-либо утверждать. chefspec довольно прост в том смысле, что он пытается избежать того, чтобы люди делали то, что они не собираются делать.
В разделе рецептов добавьте действие, которое вы уже тестируете.
apt_update 'Ubuntu apt repo update' do
action :update
subscribes :nothing, 'apt_repository[some-repo]', :immediately
end
Я всегда иду к этим примерам chefspec от sethvargo, когда мне нужна помощь.