Sha256: adb037f71e5011e642ef1c116f72739a1a9d3d358db37d32fd6cf7de5d5c76e9

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

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

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
mongoid-rspec-1.2.1 README.markdown