class Tokyo::Unit
Public Class Methods
context(label, &block)
click to toggle source
define a context inside current spec/context.
@param label @param &block
# File lib/tokyo/unit.rb, line 75 def context label, &block return unless block Tokyo.define_and_register_a_context(label, block, self) end
hooks()
click to toggle source
# File lib/tokyo/unit.rb, line 162 def hooks @__tokyo_hooks__ ||= {} end
inherited(base)
click to toggle source
# File lib/tokyo/unit.rb, line 62 def inherited base base.instance_variable_set(:@__tokyo_hooks__, Marshal.load(Marshal.dump(hooks))) end
run(test)
click to toggle source
# File lib/tokyo/unit.rb, line 179 def run test tests[test] || raise(StandardError, 'Undefined test %s at "%s"' % [test.inspect, __identity__]) catch :__tokyo_status__ do allocate.__run__(tests[test], hooks[:before], hooks[:around], hooks[:after]) end end
skip(reason = nil)
click to toggle source
skipping a whole spec/context
@example
spec Array do skip # code here wont be executed end
# File lib/tokyo/unit.rb, line 175 def skip reason = nil throw(:__tokyo_skip__, Tokyo::Skip.new(reason, caller[0])) end
spec()
click to toggle source
# File lib/tokyo/unit.rb, line 66 def spec raise(NotImplementedError, 'Nested specs not supported. Please use a context instead') end
test(label, &block)
click to toggle source
define a test
@param label @param &block
# File lib/tokyo/unit.rb, line 85 def test label, &block return unless block tests[label] = Tokyo.identity_string(:test, label, block) define_method(tests[label], &block) end
tests()
click to toggle source
# File lib/tokyo/unit.rb, line 93 def tests @__tokyo_tests__ ||= {} end
Public Instance Methods
__run__(test, before, around, after)
click to toggle source
# File lib/tokyo/unit.rb, line 35 def __run__ test, before, around, after __send__(before) if before if around __send__(around, proc {__send__(test)}) else __send__(test) end __send__(after) if after __assertions__.each(&:__validate_expectations__) __objects__.each_key {|o| Tokyo::Expectation.restore_object_status(o[:returned])} :__tokyo_passed__ rescue Exception => e throw(:__tokyo_status__, e) end
skip(reason = nil)
click to toggle source
stop executing current test and mark it as skipped
@example
test :something do skip "recheck this after fixing X" assert(x) == y # this wont run end
# File lib/tokyo/unit.rb, line 31 def skip reason = nil throw(:__tokyo_status__, Tokyo::Skip.new(reason, caller[0])) end
Private Instance Methods
__assertions__()
click to toggle source
# File lib/tokyo/unit.rb, line 55 def __assertions__ @__assertions__ ||= [] end
__objects__()
click to toggle source
# File lib/tokyo/unit.rb, line 51 def __objects__ @__objects__ ||= {} end