Skip to content

netinlet/mongoid-rspec

This branch is 3 commits ahead of, 353 commits behind mongoid/mongoid-rspec:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Doug Bryant
Feb 11, 2011
22a1ad6 · Feb 11, 2011

History

63 Commits
Aug 3, 2010
Jan 12, 2011
Jan 11, 2011
Apr 14, 2010
Oct 26, 2010
Feb 11, 2011
Nov 11, 2010
Jan 11, 2011
Apr 14, 2010
Nov 11, 2010
Feb 11, 2011
Nov 11, 2010
Feb 11, 2011

Repository files navigation

mongoid-rspec

RSpec matchers for Mongoid.

Association Matchers

describe User do
  it { should reference_many :articles }
  it { should reference_many :comments }    
  it { should embed_one :profile }
  it { should reference_many(:children).stored_as(:array) }
end

describe Profile do
  it { should be_embedded_in(:user).as_inverse_of(:profile) }
end

describe Article do
  it { should be_referenced_in(:user).as_inverse_of(:articles) }
  it { should embed_many(:comments) }
end

describe Comment do
  it { should be_embedded_in(:article).as_inverse_of(:comments) }
  it { should be_referenced_in(:user).as_inverse_of(:comments) }
end

Validation Matchers

describe User do
  it { should validate_presence_of(:login) }
  it { should validate_uniqueness_of(:login) }    
  it { should validate_format_of(:login).to_allow("valid_login").not_to_allow("invalid login") }
  it { should validate_associated(:profile) }
  it { should validate_inclusion_of(:role).to_allow("admin", "member") }
  it { should validate_numericality_of(:age) }
end

describe Article do
  it { should validate_length_of(:title) }
end

Others

describe User do
  it { should have_fields(:email, :login) }
  it { should have_field(:active).of_type(Boolean).with_default_value_of(false) }
  it { should have_fields(:birthdate, :registered_at).of_type(DateTime) }

  # useful if you use factory_girl and have Factory(:user) defined for User
  it { should save }
end

Use

add in Gemfile

gem 'mongoid-rspec'

drop in existing or dedicated support file in spec/support (spec/support/mongoid.rb)

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

About

RSpec matchers and macros for Mongoid

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%