Skip to content

activefx/mongoid-rspec

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Nov 11, 2010
8cc4a00 · Nov 11, 2010

History

56 Commits
Aug 3, 2010
Nov 11, 2010
Nov 11, 2010
Apr 14, 2010
Oct 26, 2010
Aug 24, 2010
Nov 11, 2010
Nov 11, 2010
Apr 14, 2010
Nov 11, 2010
Nov 11, 2010
Nov 11, 2010
Nov 11, 2010

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