module Tunit::Spec::DSL

Attributes

name[R]

Public Instance Methods

after(&block) click to toggle source
# File lib/tunit/spec.rb, line 32
def after &block
  define_method :teardown do
    self.instance_eval(&block)
  end
end
before(&block) click to toggle source
# File lib/tunit/spec.rb, line 26
def before &block
  define_method :setup do
    self.instance_eval(&block)
  end
end
children() click to toggle source
# File lib/tunit/spec.rb, line 52
def children
  @children ||= []
end
create(name) click to toggle source
# File lib/tunit/spec.rb, line 56
def create name
  klass = Class.new(self) {
    @name = name

    remove_test_methods!
  }

  children << klass

  klass
end
it(desc, &block) click to toggle source
# File lib/tunit/spec.rb, line 38
def it desc, &block
  block ||= -> { skip "(no tests defined)" }

  @specs ||= 0
  @specs += 1

  test_name = desc.gsub " ", "_"
  name      = "test_%04d_%s" % [ @specs, test_name ]

  define_method name, &block

  name
end
remove_test_methods!() click to toggle source
# File lib/tunit/spec.rb, line 68
def remove_test_methods!
  self.runnable_methods.map { |test|
    self.send :undef_method, test
  }
end