2

按照说明,我已经安装了mongoid-rspec并在 spec_helper.rb 中对其进行了配置

RSpec.configure do |config|
  config.include Mongoid::Matchers, type: :model
end

但是在最简单的测试中遇到了一个问题

describe City do
  it { should have_many(:locations) }
end

City should have many :locations
     Failure/Error: it { should have_many(:locations) }
     NoMethodError:
       undefined method `has_many?' for 

似乎我做错了,但无法弄清楚到底出了什么问题。

模型非常简单

class City
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Paranoia
  include Mongoid::Versioning
  max_versions 10

  has_many :locations
end

class Location
  include Mongoid::Document
  belongs_to :city
  field :name, type: String
end

最后一件事,我不使用 Rails。

4

2 回答 2

1

我遇到了类似的问题,但是在使用 rails 时,我认为 rails 和 none rails 的解决方案非常相似:

gem 'mongoid-rspec', '~> 2.2.0'

没有导轨

添加到您的 spec_helper.rb 文件:

require 'mongoid-rspec'

RSpec.configure do |config|
  config.include Mongoid::Matchers
end

带导轨

添加到您的 rails_helper.rb

require 'mongoid-rspec'

RSpec.configure do |config|
  config.include Mongoid::Matchers, type: :model
end
于 2015-04-19T10:29:20.930 回答
1

在我的 spec_helper 文件中,我删除了选项 type: :model 现在可以使用

RSpec.configure do |config| config.include Mongoid::Matchers end

于 2014-12-12T09:42:02.220 回答