Skip to content
This repository


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

Fetching latest commit…


Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 spec added more validation expectations and specs January 31, 2010
Octocat-spinner-32 .gitignore
Octocat-spinner-32 CHANGELOG
Octocat-spinner-32 MIT-LICENSE
Octocat-spinner-32 README
Octocat-spinner-32 Rakefile
Octocat-spinner-32 init.rb
Octocat-spinner-32 rspec_validation_expectations.gemspec
= rspec_validation_expectations

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

== Dependencies

Requires the validation_reflection plugin:

  script/plugin install git://

== Installation

Install the gem directly:

  sudo gem install pelargir-rspec_validation_expectations --source=
Or install the gem in your Rails project:
  script/plugin install git://

Or clone the project:

  git clone 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 => ''}
    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
Which gives you:

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

  - 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

Author: Matthew Bass
Something went wrong with that request. Please try again.