2

我正在创建一个新的 Gem,它有一些使用 Mongoid 的模型。我想使用 RSpec 测试我的 gem。我已经开始使用 RSpec 来编写测试。我已经安装了一个名为 mongoid-rspec 的 gem,并根据它的文档进行了设置

现在我需要告诉 Mongoid 如何配置自己。从命令行运行 rspec,它现在告诉我它找不到 mongoid.yml 文件,我应该运行rails g mongoid:config. 显然这行不通,因为我正在测试宝石。

我是 rspec 和 mongoid 的新手,所以我不太确定在这个测试环境中正确配置它需要做的所有事情。它可能就像创建这个 mongoid.yml 文件一样简单,但我不确定放置它的最佳位置。

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

4

2 回答 2

3

以下是如何让 Mongoid 在 gem rspec 测试的上下文中工作。

例如下设置一个 Mongoid 配置文件spec/config/mongoid.yml

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

在您的spec/spec_helper.rb文件中,您可以添加

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

请在Mongoid 设置文档页面上找到有关此问题的更多详细信息

于 2014-02-06T20:47:59.987 回答
1

只需将以下代码段添加到spec_helper配置部分:

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

这将在每次测试之前清除 mongo 数据库。您也可以使用factory_girl(它适用于 Mongoid)和非常有用的mongoid-rspecgem:https ://github.com/evansagge/mongoid-rspec

..基本上就是这样;)

于 2012-07-29T18:08:24.160 回答