Class: Assert::Test

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, suite_ci, config, opts = nil, &block) ⇒ Test

Returns a new instance of Test.



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/assert/test.rb', line 16

def initialize(name, suite_ci, config, opts = nil, &block)
  @context_info = suite_ci
  @config = config
  @name, @file_line = name_file_line_from_context(@context_info, name)

  o = opts || {}
  @code = o[:code] || block || Proc.new{}

  @results = Result::Set.new
  @output  = ""
  @run_time = 0
  @result_rate = 0
end

Instance Attribute Details

#codeObject (readonly)

Returns the value of attribute code.



13
14
15
# File 'lib/assert/test.rb', line 13

def code
  @code
end

#configObject (readonly)

a Test is some code/method to run in the scope of a Context. After a a test runs, it should have some assertions which are its results.



12
13
14
# File 'lib/assert/test.rb', line 12

def config
  @config
end

#context_infoObject (readonly)

a Test is some code/method to run in the scope of a Context. After a a test runs, it should have some assertions which are its results.



12
13
14
# File 'lib/assert/test.rb', line 12

def context_info
  @context_info
end

#file_lineObject (readonly)

Returns the value of attribute file_line.



13
14
15
# File 'lib/assert/test.rb', line 13

def file_line
  @file_line
end

#nameObject (readonly)

Returns the value of attribute name.



13
14
15
# File 'lib/assert/test.rb', line 13

def name
  @name
end

#outputObject

Returns the value of attribute output.



14
15
16
# File 'lib/assert/test.rb', line 14

def output
  @output
end

#resultsObject

Returns the value of attribute results.



14
15
16
# File 'lib/assert/test.rb', line 14

def results
  @results
end

#run_timeObject

Returns the value of attribute run_time.



14
15
16
# File 'lib/assert/test.rb', line 14

def run_time
  @run_time
end

Instance Method Details

#<=>(other_test) ⇒ Object



65
66
67
# File 'lib/assert/test.rb', line 65

def <=>(other_test)
  self.name <=> other_test.name
end

#context_classObject



30
# File 'lib/assert/test.rb', line 30

def context_class; self.context_info.klass; end

#fileObject



31
# File 'lib/assert/test.rb', line 31

def file;          self.file_line.file;     end

#inspectObject



69
70
71
72
73
74
# File 'lib/assert/test.rb', line 69

def inspect
  attributes_string = ([ :name, :context_info, :results ].collect do |attr|
    "@#{attr}=#{self.send(attr).inspect}"
  end).join(" ")
  "#<#{self.class}:#{'0x0%x' % (object_id << 1)} #{attributes_string}>"
end

#line_numberObject



32
# File 'lib/assert/test.rb', line 32

def line_number;   self.file_line.line;     end

#result_count(type = nil) ⇒ Object



53
54
55
56
57
58
59
# File 'lib/assert/test.rb', line 53

def result_count(type=nil)
  if Assert::Result.types.include?(type)
    self.send("#{type}_results").size
  else
    @results.size
  end
end

#result_rateObject



61
62
63
# File 'lib/assert/test.rb', line 61

def result_rate
  get_rate(self.result_count, self.run_time)
end

#run(&result_callback) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/assert/test.rb', line 34

def run(&result_callback)
  @results = Result::Set.new(result_callback)

  scope = self.context_class.new(self, self.config)
  start_time = Time.now
  capture_output do
    self.context_class.send('run_arounds', scope){ run_test_main(scope) }
  end
  @run_time = Time.now - start_time

  @results
end