我有以下厨师代码:
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 更新]
似乎正在试图断言我的动作是否为更新,如何使它不承担我的动作?
答案 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示例。