Class: Assert::Suite

Inherits:
Hash
  • Object
show all
Defined in:
lib/assert/suite.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#end_timeObject

A suite is a set of tests to run. When a test class subclasses the Context class, that test class is pushed to the suite.



9
10
11
# File 'lib/assert/suite.rb', line 9

def end_time
  @end_time
end

#start_timeObject

A suite is a set of tests to run. When a test class subclasses the Context class, that test class is pushed to the suite.



9
10
11
# File 'lib/assert/suite.rb', line 9

def start_time
  @start_time
end

Instance Method Details

#<<(context_klass) ⇒ Object



15
16
17
18
# File 'lib/assert/suite.rb', line 15

def <<(context_klass)
  # gsub off any trailing 'Test'
  self[context_klass] ||= []
end

#contextsObject



20
21
22
# File 'lib/assert/suite.rb', line 20

def contexts
  self.keys.sort{|a,b| a.to_s <=> b.to_s}
end

#count(thing) ⇒ Object



52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/assert/suite.rb', line 52

def count(thing)
  case thing
  when :tests
    test_count
  when :results
    result_count
  when :passed, :pass
    result_count(:pass)
  when :failed, :fail
    result_count(:fail)
  when :ignored, :ignore
    result_count(:ignore)
  when :skipped, :skip
    result_count(:skip)
  when :errored, :error
    result_count(:error)
  else
    0
  end
end

#ordered_results(klass = nil) ⇒ Object



36
37
38
39
40
# File 'lib/assert/suite.rb', line 36

def ordered_results(klass=nil)
  ordered_tests(klass).inject([]) do |results, test|
    results += test.results
  end
end

#ordered_tests(klass = nil) ⇒ Object



29
30
31
32
33
34
# File 'lib/assert/suite.rb', line 29

def ordered_tests(klass=nil)
  prep
  (klass.nil? ? self.contexts : [klass]).inject([]) do |tests, klass|
    tests += (self[klass] || [])
  end
end

#result_count(type = nil) ⇒ Object



47
48
49
50
# File 'lib/assert/suite.rb', line 47

def result_count(type=nil)
  prep
  count_results(self.values, type)
end

#run_timeObject



11
12
13
# File 'lib/assert/suite.rb', line 11

def run_time
  (@end_time || 0) - (@start_time || 0)
end

#setup(&block) ⇒ Object



73
74
75
76
77
78
79
# File 'lib/assert/suite.rb', line 73

def setup(&block)
  if block_given?
    self.setups << block
  else
    self.setups.each{|setup| setup.call}
  end
end

#teardown(&block) ⇒ Object



81
82
83
84
85
86
87
# File 'lib/assert/suite.rb', line 81

def teardown(&block)
  if block_given?
    self.teardowns << block
  else
    self.teardowns.reverse.each{|teardown| teardown.call}
  end
end

#test_count(klass = nil) ⇒ Object



42
43
44
45
# File 'lib/assert/suite.rb', line 42

def test_count(klass=nil)
  prep
  count_tests(klass.nil? ? self.values : [self[klass]])
end

#testsObject



24
25
26
27
# File 'lib/assert/suite.rb', line 24

def tests
  prep
  self.values.flatten
end