2011-03-29 52 views
4

我正在開發一個紅寶石寶石,它提供了一些可以混合到ActiveRecord模型中的方法,類似於例如。 acts_as_taggable。測試配方:如何使用軌道相關性測試紅寶石

我的問題是:如何編寫例如我的代碼沒有軌應用程序的單元測試?我的模型依賴於在軌道上建立的現有數據庫/連接上。如果沒有連接,則測試執行失敗。

我還需要將一些文件從我的gem目錄複製到rails應用程序,例如, RAILS_ROOT來檢測rails應用程序目錄。環境變量也不可用。

你會怎樣做?在測試運行期間,某款Rails應用程序可以「模擬」嗎?

在此先感謝您的任何提示。

回答

4

我有同樣的問題,這些天: Rspec, test Gems

你會看到我自己的答案有趣的資源。

我最終在我的寶石測試目錄中創建了一個rails應用程序。在我的應用程序的gem文件中,我使用相對路徑引用了我的開發寶石。

簡而言之:我通過應用程序測試gem。

看一看:https://github.com/apneadiving/Google-Maps-for-Rails

我有一個虛擬的Rails應用程序與所有Rspec的測試。

+0

謝謝!在此期間我發現了這些資源:http://stackoverflow.com/questions/2086578/proper-way-of-testing-gems,http://stackoverflow.com/questions/722918/testing-ruby-gems-under-軌道。兩者都提供了一些解決方案,但沒有提供我正在尋找的解決方案。在測試文件夾內創建應用程序只有一個,但感覺(IMO)有點過載;-) – auralbee 2011-03-29 11:25:29