如何配置rspec&用于宝石测试的mongoid?

时间:2012-07-27 19:56:37

标签: ruby rspec mongoid

我正在创建一个新的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文件一样简单,但我不确定它是最好的放置它。

任何帮助将不胜感激。谢谢!

2 个答案:

答案 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')

请在Mongoid setup Documentation page

上找到有关此问题的更多详细信息

答案 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

..基本上就是这样;)