rspec Mongoid范围适用于开发而非测试

PW *_*Kad 6 ruby rspec ruby-on-rails mongoid

我有一个范围我应用于rails中的Mongoid对象,在开发时效果很好,但在运行测试时却没有.它实际上在测试中根本不起作用.这是一个嵌入式文档.

父母:

class Person
  include Mongoid::Document
  def self.with_appointments
    where(:appointments.not => { '$size' => 0 })
  end
  embeds_many :appointments, store_as: 'Appointments', class_name: 'Appointment'
end
Run Code Online (Sandbox Code Playgroud)

嵌入的孩子:

class Appointment
  include Mongoid::Document
  embedded_in :person
end
Run Code Online (Sandbox Code Playgroud)

当我对我的模型运行测试时,它会返回人员是否有约会.如果我在开发中针对数据库从我的控制器运行相同的操作,则过滤掉空委员的人.

我错过了什么?

在要求我更改数据库设置之前 -

  1. 我无法控制数据结构
  2. 假设我甚至没有对数据库的写访问权

omi*_*kes 0

检查你的 GemFile,我敢打赌 Mongoid 设置为仅在开发中运行:

尝试切换这个

gem 'mongoid', group: :development
Run Code Online (Sandbox Code Playgroud)

对此

gem 'mongoid'
Run Code Online (Sandbox Code Playgroud)