レシピの冪等性をテストするためにchefspecを使用したいと思います。
次の 2 つのリソース ステートメントを含むレシピがあるとします。
file '/etc/app.config' do
action :create
notifies :restart, "service[app]"
end
service 'app' do
action :enable
end
/etc/app.configファイルが既に存在する場合、appサービスが再起動するように通知されないことを証明するchefspecの例をどのように書くことができますか?
「ファイル」リソースがファイルが既に存在すると見なすようにできるモックはありますか? 最初の実行の状態を維持して、ChefSpec::ServerRunner を 2 回実行できますか (ファイルは実際には作成されていないため、実行できないと思います)? それとも、realz で物事を実現するために test-kit と Vagrant を使用する必要がありますか?
(注: 私の実際のクックブックには、構成ファイルを作成するカスタム LWRP があります。シェフ サーバーから情報を取得するため、ServerRunner を使用しています)