2012-07-27 119 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