Sha256: d6d30d4e337b3c7dfada7f2123d3a5671359a4124c53e060d7906f1e42d7a253

Contents?: true

Size: 856 Bytes

Versions: 3

Compression:

Stored size: 856 Bytes

Contents

module Minitest
  class Test
    def self.test(name, &block)
      test_name = "test_#{name.gsub(/\s+/,'_')}".to_sym
      defined = method_defined? test_name

      raise "#{test_name} is already defined in #{self}" if defined

      if block_given?
        define_method(test_name, &block)
      else
        define_method(test_name) do
          flunk "No implementation provided for #{name}"
        end
      end
    end

    def self.setup(&block)
      mod = Module.new
      mod.module_eval do
        define_method :setup do
          super()
          instance_eval(&block)
        end
      end

      include mod
    end

    def self.teardown(&block)
      mod = Module.new
      mod.module_eval do
        define_method :teardown do
          super()
          instance_eval(&block)
        end
      end

      include mod
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
minitest-utils-0.2.3 lib/minitest/utils/extension.rb
minitest-utils-0.2.1 lib/minitest/utils/extension.rb
minitest-utils-0.2.0 lib/minitest/utils/extension.rb