Sha256: 4ac97a416365e8c09df5deee27cb714b71193b072c92b24a86dda621eee0f58f

Contents?: true

Size: 1.46 KB

Versions: 18

Compression:

Stored size: 1.46 KB

Contents

class ActiveSupport::TestCase
  include ActiveRecord::TestFixtures
  self.use_transactional_fixtures = true
  
  class << self
    def assertion(name, &block)
      mc = class << self ; self ; end
      mc.class_eval do
        define_method(name) do
          it(name, &block)
        end
      end
    end
    
    def asssertion_group(name, &block)
      mc = class << self ; self ; end
      mc.class_eval do
        define_method(name, &block)
      end
    end

    def macro(name, &block)
      class_eval do
        define_method(name, &block)
      end
    end
    
    def describe(description, toplevel=nil, &blk)
      text = toplevel ? description : "#{name} #{description}"
      klass = Class.new(self)

      klass.class_eval <<-RUBY_EVAL
        def self.name
          "#{text}"
        end
      RUBY_EVAL

      # do not inherit test methods from the superclass
      klass.class_eval do
        instance_methods.grep(/^test.+/) do |method|
          undef_method method
        end
      end

      klass.instance_eval &blk
    end
    alias_method :context, :describe
    
    def let(name, &blk)
      values = {}
      define_method(name) do
        return values[name] if values.has_key?(name)
        values[name] = instance_eval(&blk)
      end
    end
    
    def it(description, &blk)
      define_method("test: #{name} #{description}", &blk)
    end
  end
  
end

def describe(description, &blk)
  ActiveSupport::TestCase.describe(description, true, &blk)
end

Version data entries

18 entries across 18 versions & 3 rubygems

Version Path
activerecord-import-0.4.1 test/support/active_support/test_case_extensions.rb
activerecord-import-0.4.0 test/support/active_support/test_case_extensions.rb
activerecord-import-rails4-0.5.0 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.9 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.8 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.8.rc3 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.8.rc2 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.8.rc1 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.7 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.6 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.5 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.4 test/support/active_support/test_case_extensions.rb
Empact-activerecord-import-0.3.1 test/support/active_support/test_case_extensions.rb
Empact-activerecord-import-0.3.0 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.3 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.2 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.1 test/support/active_support/test_case_extensions.rb
activerecord-import-0.2.0 test/support/active_support/test_case_extensions.rb