Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Adds several handy expectations for testing ActiveRecord model validations and associations.

branch: master
README
= rspec_validation_expectations

Adds several handy expectations for testing ActiveRecord model validations and associations.

== Dependencies

Requires the validation_reflection plugin:

  script/plugin install git://github.com/redinger/validation_reflection.git

== Installation

Install the gem directly:

  sudo gem install pelargir-rspec_validation_expectations --source=http://gems.github.com
  
Or install the gem in your Rails project:
  
  script/plugin install git://github.com/pelargir/rspec_validation_expectations.git

Or clone the project:

  git clone git://github.com/pelargir/rspec_validation_expectations.git

== Usage

Ensure that validations and assocations are properly defined in your models:

  describe User do
    it_should_validate_presence_of     :first_name, :last_name, :email
    it_should_validate_numericality_of :zip
    it_should_validate_uniqueness_of   :email
    it_should_validate_inclusion_of    :gender, :in => %w(Male Female)
    
    # tests that User.count increases by 1
    it_should_be_createable :with => {:first_name => 'Ed', :last_name => 'The Duck', :email => 'a@b.com'}
    
    it_should_belong_to :employer
    it_should_have_many :friends, :romans, :countrymen
    it_should_have_one  :account
    it_should_have_and_belong_to_many :comments
    
    # tests that the attribute is protected
    it_should_protect :email
  end
  
Which gives you:

  ruby script/spec --format s spec/models/user_spec.rb:

  User
  - should validate presence of first name
  - should validate presence of last name
  - should validate presence of email
  - should validate numericality of zip
  - should validate uniqueness of email
  - should validate inclusion of gender as one of Male or Female
  - should be creatable
  - should belong to employer
  - should have many friends
  - should have many romans
  - should have many countrymen
  - should have one account
  - should have and belong to many comments
  - should protect email

== Resources

Repository: http://github.com/pelargir/rspec_validation_expectations/
Blog: http://matthewbass.com
Author: Matthew Bass
Something went wrong with that request. Please try again.