class Test::Unit::TestCase
Contest adds teardown
, test
and context
as class methods, and the instance methods setup
and teardown
now iterate on the corresponding blocks. Note that all setup and teardown blocks must be defined with the block syntax. Adding setup or teardown instance methods defeats the purpose of this library.
Public Class Methods
Source
# File lib/contest.rb, line 33 def self.context(*name, &block) subclass = Class.new(self) remove_tests(subclass) subclass.class_eval(&block) if block_given? const_set(context_name(name.join(" ")), subclass) end
Also aliased as: describe
Source
# File lib/contest.rb, line 51 def self.context_name(name) "Test#{sanitize_name(name).gsub(/(^| )(\w)/) { $2.upcase }}".to_sym end
Source
# File lib/contest.rb, line 63 def self.remove_tests(subclass) subclass.public_instance_methods.grep(/^test_/).each do |meth| subclass.send(:undef_method, meth.to_sym) end end
Source
# File lib/contest.rb, line 59 def self.sanitize_name(name) name.gsub(/\W+/, ' ').strip end
Source
# File lib/contest.rb, line 19 def self.setup(&block) define_method :setup do super(&block) instance_eval(&block) end end
Calls superclass method
Source
# File lib/contest.rb, line 26 def self.teardown(&block) define_method :teardown do instance_eval(&block) super(&block) end end
Calls superclass method
Source
# File lib/contest.rb, line 40 def self.test(name, &block) define_method(test_name(name), &block) end
Also aliased as: should
Source
# File lib/contest.rb, line 55 def self.test_name(name) "test_#{sanitize_name(name).gsub(/\s+/,'_')}".to_sym end