class MiniTest::Spec
def self.after(type = :each, &block)
def self.after(type = :each, &block) if type == :all # REFACTOR warn "change before :all to before :each" type = :each end raise "unsupported after type: #{type}" unless type == :each define_inheritable_method :teardown, &block end
def self.before(type = :each, &block)
def self.before(type = :each, &block) if type == :all warn "change before :all to before :each" type = :each end raise "unsupported before type: #{type}" unless type == :each define_inheritable_method :setup, &block end
def self.current
def self.current @@current_spec end
def self.define_inheritable_method name, &block
def self.define_inheritable_method name, &block super_method = self.superclass.instance_method name define_method name do super_method.bind(self).call if super_method # regular super() warns instance_eval(&block) end end
def self.describe_stack
def self.describe_stack @@describe_stack end
def self.it desc, &block
def self.it desc, &block define_method "test_#{desc.gsub(/\W+/, '_').downcase}", &block end
def self.nuke_test_methods!
def self.nuke_test_methods! self.public_instance_methods.grep(/^test_/).each do |name| self.send :undef_method, name end end
def initialize name
def initialize name super @@current_spec = self end