我正在创建一个新的Gem,它有一些使用Mongoid的模型。我想用RSpec测试我的宝石。我已经开始使用RSpec编写测试。我安装了一个名为mongoid-rspec和set it up according to its documentation的宝石。
现在我需要告诉Mongoid如何配置自己。从命令行运行rspec,它现在告诉我它找不到mongoid.yml文件,我应该运行rails g mongoid:config
。显然,由于我正在测试宝石,这将无效。
我是rspec和mongoid的新手,所以我不太确定在这个测试环境中正确配置它需要做的所有事情。它可能像创建这个mongoid.yml文件一样简单,但我不确定它是最好的放置它。
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
以下是如何使Mongoid在gem 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')
上找到有关此问题的更多详细信息
答案 1 :(得分:0)
只需将以下代码段添加到spec_helper
配置部分:
# Clean up all collections before each spec runs.
config.before do
Mongoid.purge!
end
这将在每次测试之前清除mongo数据库。
你也可以使用factory_girl
(它适用于Mongoid)和非常有帮助的mongoid-rspec
gem:https://github.com/evansagge/mongoid-rspec
..基本上就是这样;)