Chefspec как выполнить юнит-тест для update_apt_update без обновления - PullRequest
0 голосов
/ 25 января 2019

У меня есть следующий код шеф-повара:

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]" с действием: обновление до быть в шеф-поваре.

Другие ресурсы apt_update: apt_update [Ubuntu apt repo обновление]

Похоже, что он пытается утверждать, что мое действие - обновление, как мне заставить его не принимать моё действие?

1 Ответ

0 голосов
/ 28 января 2019

В chefspec вы уже сказали ему ожидать update _apt_update, поэтому он ожидает действия обновления от ресурса.Таким образом, оно не предполагает ваших действий и не пытается что-либо утверждать.chefspec довольно прост в том смысле, что он пытается избежать того, чтобы люди делали то, что они не собираются делать.

В разделе рецептов добавьте действие, которое вы уже тестируете.

apt_update 'Ubuntu apt repo update' do
action :update
subscribes :nothing, 'apt_repository[some-repo]', :immediately
end

Я всегда обращаюсь к этим примерам chefspec от sethvargo, когда мне нужна помощь.

Примеры chefspec

...