lib/lemon.rb in lemon-0.8.5 vs lib/lemon.rb in lemon-0.9.0

- old
+ new

@@ -14,7 +14,57 @@ metadata[key] || super(name) end end -require 'lemon/cli' -require 'lemon/controller/coverage_analyzer' +# Ruby Test standard location for test objects. +$TEST_SUITE ||= [] + +require 'lemon/test_class' + +module Lemon + + # Lemon's toplevel test domain specific language. + module DSL + + # Require script and record it. + # + # @param [STRING] script + # The load path of a script. + # + def covers(script) + # TODO: record coverage list + require script + end + alias :Covers :covers + + # Define a class/module test case. + # + # @param [Module,Class] target + # The class or module the tests will target. + # + # @yield + # Scope in which to define unit/method testcases. + # + def test_case(target, &block) + case target + when Class + $TEST_SUITE << Lemon::TestClass.new(:target=>target, &block) + when Module + $TEST_SUITE << Lemon::TestModule.new(:target=>target, &block) + else + if defined?(super) + super(target, &block) + else + raise + end + end + end + + alias :TestCase :test_case + alias :testcase :test_case + + end + +end + +extend Lemon::DSL