2016-09-19 25 views
1

是否有標準模式來編寫傀儡模塊的spec測試,正確創建被測模塊包含的模塊所需的自定義事實Rspec傀儡模塊測試:訪問包含的類的自定義事實

我有一個模塊,其類包括puppetlabs/mongodb,它使用自定義fact :: root_home(由puppetlabs/stdlib創建)。

看看mongodb的測試代碼(特別是spec_helper_local.rb),我看到了創建:root_home測試事實的代碼。

但是,在我自己的模塊中,除非我在我自己的測試代碼中做了一些事情來創建這個事實,否則我的測試將以「評估錯誤:未知變量」失敗,這使得完美,因爲測試套件中沒有創建事實。

現在我可以在我的模塊的spec_helper_local.rb文件中創建這個事實,但是這只是將樓上的問題踢到了包含我的模塊的人身上。

我該如何處理?是否有人已經編寫了遞歸下降到包含模塊中的代碼並創建了測試所需的事實?

+2

規範助手本地的想法並不差,但也可以考慮把它放在測試規範本身的'let'塊中。就我所知,沒有最佳的做法,這是你想要的。 –

回答

0

將自定義事實添加到測試套件設置中正是您應該做的。

正如您正確地聲明,這不會幫助您的模塊的下游用戶,但這沒有考慮到測試套件的重點:完全描述模塊評估的環境。

您可以查看rspec-puppet-facts爲所有測試設置默認事實(並獲得一些其他漂亮的功能)。