activerecord-import/test/support/active_support/test_case_extensions.rb

68 lines
1.5 KiB
Ruby

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