custom_resource の内部ビットをテストするには、ChefSpec に step_into を指示する必要があります。通常、ChefSpec はプロバイダーを実行しません。
失敗時に適切なテストを行うには、ドキュメントのここでexpect(:chef_run).to raise_error
説明する必要があります
のドキュメントの引用step_into
:
LWRP によって公開されたアクションを実行するには、それにRunner
ステップインするよう明示的に指示する必要があります。
「シェフスペック」が必要
describe 'foo::default' do
let(:chef_run) do
ChefSpec::SoloRunner.new(step_into: ['my_lwrp']).converge('foo::default')
end
it 'installs the foo package through my_lwrp' do
expect(chef_run).to install_package('foo')
end
end
注: クックブックが LWRP を公開している場合は、以下の「カスタム Matcher のパッケージ化」セクションで説明されているように、libraries/matchers.rb ファイルも作成することを強くお勧めします。テストしていない限り、LWRP にステップインしないでください。別のクックブックから LWRP にステップインしないでください。