如何测试Mongoid的嵌入式文档?

时间压力

我创建了一个以mongoid作为odm的Rails 4应用程序。我可以使用mongoid-rspec gem成功测试所有模型,但无法嵌入文档。我找不到办法。

这是基本模型:

class Project::Type
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Paranoia

  store_in session: 'project', collection: 'type'

  embeds_many :rules, :class_name => "Project::TypeRule"

  field :name, type: String
  field :timing, type: String

  index({ name: 1 }, { unique: false, name: 'project_type_name', background: true })
end

这是嵌入式文档:

class Project::TypeRule
  include Mongoid::Document
  include Mongoid::Timestamps
  include Mongoid::Paranoia

  embedded_in :type ,:inverse_of => :rules

  TYPES = ["internal_link", "external_link","h1"]

  field :name,          type: String
  field :rule_type,     type: String
  field :value,         type: String
  field :count,         type: Integer
end

这是测试脚本:

require 'rails_helper'

describe Project::Type, :type => :model do
  let(:type) { create(:project_type) }

  it { should be_stored_in :type }

  # Associations
  it { should embed_many(:rules) }

  #Fields
  it { should have_fields(:name).of_type(String) }
  it { should have_fields(:timing).of_type(String) }
  it { should be_timestamped_document }
  it { should be_paranoid_document }

  #Indexes
  it { should have_index_for(name: 1).with_options(unique: false, name: 'project_type_name', background: true) }
end

我已经在Google上搜索了有关该内容的信息,但不幸的是没有任何线索。测试嵌入式文档的正确方法是什么?

drinor

您正在测试Type嵌入了许多规则。现在,您应该测试另一面:

describe Project::TypeRule, :type => :model do
  # Associations
  it { should be_embedded_in(:type).as_inverse_of(:rules) }

  # Fields
  it { should have_fields(:name).of_type(String) }
  ...
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Mongoid嵌入式文档属于_嵌入式文档

来自分类Dev

Rails 4 MongoID嵌入式文档

来自分类Dev

mongoid-查询嵌入式文档

来自分类Dev

多个嵌入式文档的Mongoid分组

来自分类Dev

Mongoid嵌入式文档属具_到嵌入式文档

来自分类Dev

如何在Mongoid中找到字段值为nil的嵌入式文档?

来自分类Dev

如何在Rails和Mongoid中查询嵌入式文档

来自分类Dev

Mongoid在父内部创建嵌入式文档

来自分类Dev

Mongoid:基于嵌入式文档数组的大小查询

来自分类Dev

Mongoid嵌套嵌入式文档保存忽略查询

来自分类Dev

Mongoid在单个查询中推送新的嵌入式文档

来自分类Dev

如何验证mongodb嵌入式文档

来自分类Dev

如何对嵌入式文档进行排序?

来自分类Dev

如何删除重复的嵌入式文档

来自分类Dev

具有嵌入式文档的文档的Mongoid Rails更新错误

来自分类Dev

Mongoid嵌入式集合对:find的响应

来自分类Dev

Mongoid嵌入式集合对:find的响应

来自分类Dev

如何在嵌入式数组mongodb中查询嵌入式文档

来自分类Dev

如何在OrientDB中插入嵌入式文档

来自分类Dev

如何使用Mongoengine删除嵌入式文档?

来自分类Dev

如何在嵌入式文档数组上使用$ geoNear?

来自分类Dev

如何强制iframe调整大小以适合嵌入式文档?

来自分类Dev

MongoClient:如何设置嵌入式文档的值

来自分类Dev

猫鼬:如何更新子嵌入式文档数组?

来自分类Dev

如何根据其ID更新嵌入式文档?

来自分类Dev

如何选择嵌入式文档列表作为根元素

来自分类Dev

如何在Meteor中循环浏览嵌入式文档

来自分类Dev

如何对嵌入式文档进行汇总查询?

来自分类Dev

如何从ReactiveMongo生成嵌入式文档的ObjectIds

Related 相关文章

热门标签

归档