Repository is archived
No commit activity in last 3 years
No release in over 3 years
Adds several handy expectations for testing ActiveRecord model validations, similar to what Shoulda provides.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

 Project 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