2016-09-29 84 views
0

所以我試圖創建一個可重用的自定義資源庫。 This視頻解釋瞭如何做到這一點,但並未解決測試資源的問題。你如何與ChefSpec單獨測試自定義的廚師資源?

我知道你可以通過食譜和會聚測試資源,但我不想寫一個新的食譜來測試我的資源。

我希望有一些方法來執行與屬性的自定義的資源而不需要做類似如下:

let(:chef_run) do 
    runner = ChefSpec::ServerRunner.new 
    runner.converge(described_recipe) 
end 

如果你能說出那樣說

filename = 'myFile'  

it 'my resource should write to file' do 
    execute_resouce(:some_resouce).with(filename) 
    expect(::File).to receive(:write).with(filename) 
end 

會真的很酷。

回答

1

不幸的是,這很難。我有一個適用於我的解決方案,但它尚未完全清理供公衆使用。您可以在https://github.com/poise/poise-spec看到正在進行的清理工作,並可能從我的風格中挑選一些想法(例如,https://github.com/poise/poise-service/blob/master/test/spec/resources/poise_service_user_spec.rb)。總的來說,現在最簡單的方法就是在test/cookbook/或類似的地方製作一個測試夾具菜譜,並在其中放入一些小菜譜,以便您可以告訴ChefSpec運行。

相關問題