2012-07-27 58 views
1

我正在創建一個新的Gem,它有一些使用Mongoid的模型。我想用RSpec測試我的寶石。我已經開始使用RSpec編寫測試。我已經安裝了一個名爲mongoid-rspec的寶石和set it up according to its documentation如何爲gem測試配置rspec&mongoid?

現在我需要告訴Mongoid如何配置自己。從命令行運行rspec,它現在告訴我它找不到mongoid.yml文件,我應該運行rails g mongoid:config。顯然這是不行的,因爲我正在測試一個寶石。

我是rspec和mongoid的新手,所以我不太清楚所有需要做的事情,以便在此測試環境中正確配置它。這可能就像創建這個mongoid.yml文件一樣簡單,但我不確定放置它的最佳位置。

任何幫助,將不勝感激。謝謝!

回答

2

這裏是你如何可以使Mongoid工作寶石的情況下rspec測試。

例如在spec/config/mongoid.yml下設置一個Mongoid配置文件。

development: 
    sessions: 
    default: 
     database: your_gem_db 
     hosts: 
     - localhost:27017 

spec/spec_helper.rb文件,你可以添加

Mongoid.load!('./spec/config/mongoid.yml') 

請找到該Mongoid setup Documentation page

1

下面的代碼片斷只需添加到spec_helper配置部分:

# Clean up all collections before each spec runs. 
config.before do 
    Mongoid.purge! 
end 

這將在每次測試之前清除蒙戈數據庫。 您也可以使用factory_girl(其工作原理與Mongoid精細)和非常有益的mongoid-rspec寶石:https://github.com/evansagge/mongoid-rspec

..和基本上就是這樣;)

+1

這個問題的進一步細節這個答案是毫無關係的問題。 – Quentin 2014-02-06 20:39:35

+0

我有一些非常奇怪的問題(我認爲數據庫默認是持久的),這個答案(清除部分)真的幫了我很大的忙,當我嘗試搜索我的問題時,它是第一個在Google上顯示給我的, 那謝謝啦。 – 2017-03-13 10:38:22