Sha256: 73e44ebd9704e66f880a34e7943bc61ec4521ce249c48bc9cf0c9e4db92a1944

Contents?: true

Size: 774 Bytes

Versions: 3

Compression:

Stored size: 774 Bytes

Contents

module Jeka
  
  class TestCase
    attr_reader :database
    
    def tests
      methods.select {|m| m =~ /^test_/}.map {|m| send(m)}
    end
        
    def self.test(name)
      t = Test.new(name)
      yield t
      define_method("test_#{name}".to_sym) do
        return t
      end
    end
    
    def self.reset
      @@test_suites = {}
    end
    
    def self.inherited(klass)
      @@test_suites ||= {}
      @@test_suites[klass] = true
    end
    
    def self.test_suites
      @@test_suites ||= {}
      @@test_suites.keys.sort_by { |ts| ts.name }.collect{|ts| ts.new}
    end
    
    def jekafy
      @database = Jeka::Analysis::TestCase.create(
        name: self.class.to_s,
        tests: tests.collect {|t| t.jekafy}
      )
    end
    
  end
  
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
jeka-0.2.2 lib/jeka/test_case.rb
jeka-0.2.1 lib/jeka/test_case.rb
jeka-0.2.0 lib/jeka/test_case.rb