module Shoulda::Matchers::ActiveModel
Matchers for your active record models¶ ↑
These matchers will test most of the validations of ActiveModel::Validations.
describe User do it { should validate_presence_of(:name) } it { should validate_presence_of(:phone_number) } %w(abcd 1234).each do |value| it { should_not allow_value(value).for(:phone_number) } end it { should allow_value('(123) 456-7890').for(:phone_number) } it { should_not allow_mass_assignment_of(:password) } it { should allow_value('Activated', 'Pending').for(:status).strict } it { should_not allow_value('Amazing').for(:status).strict } end
These tests work with the following model:
class User < ActiveRecord::Base
validates_presence_of :name validates_presence_of :phone_number validates_inclusion_of :status, in: %w(Activated Pending), strict: true attr_accessible :name, :phone_number
end