Resources
      
        
        
  class Test::Unit::TestCase
  self.use_transactional_fixtures = true
  self.use_instantiated_fixtures  = false
  
  def disable_validation
    ActiveRecord::Base.disable_validation!
    yield
    ActiveRecord::Base.enable_validation!
  end
end
module ValidationDisabler
  def self.included(base)
    base.class_eval do
      extend ClassMethods
      alias_method_chain :valid?, :disable_check
    end
  end
  
  def valid_with_disable_check?
    if self.class.validation_disabled?
      true
    else
      valid_without_disable_check?
    end
  end
  
  module ClassMethods
    def disable_validation!
      @@disable_validation = true
    end
    
    def enable_validation!
      @@disable_validation = false
    end
    
    def validation_disabled?
      @@disable_validation ||= false
    end
  end
end
class ActiveRecord::Base
  include ValidationDisabler
end 
 
       
Note there is a slight problem with how I set the default value for the class variable in the screencast. The code posted here should be correct.
Ideally I would use something like class_inheritable_accessor instead of a class variable, but I was unable to get this to work. Please comment if you have a suggestion.