Chefspec如何对没有更新的update_apt_update进行单元测试

时间:2019-01-24 23:08:57

标签: chef chefspec

我有以下厨师代码:

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 to   在厨师长的陪伴下

     

其他apt_update资源:apt_update [Ubuntu apt repo   更新]

似乎正在试图断言我的动作是否为更新,如何使它不承担我的动作?

1 个答案:

答案 0 :(得分:0)

在Chefspec中,您已经告诉它期望更新 _apt_update 因此,它期望资源执行更新操作。因此,它不是在假设您的行动,也不是在试图主张任何东西。 Chefspec从某种意义上讲非常简单,它可以避免人们去做自己不打算做的事情。

在“食谱”部分,请添加您已经在测试的操作。

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

当需要帮助时,我总是从sethvargo转到这些Chefspec示例。

chefspec examples