Class: Assert::Test
- Inherits:
-
Object
- Object
- Assert::Test
- Defined in:
- lib/assert/test.rb
Class Method Summary collapse
- .for_block(name, context_info, config, &block) ⇒ Object
- .for_method(method_name, context_info, config) ⇒ Object
-
.name_file_line_context_data(ci, name) ⇒ Object
a Test is some code/method to run in the scope of a Context that may produce results.
Instance Method Summary collapse
- #<=>(other_test) ⇒ Object
- #code ⇒ Object
- #config ⇒ Object
- #context_class ⇒ Object
- #context_info ⇒ Object
- #file_line ⇒ Object
- #file_name ⇒ Object
-
#initialize(build_data = nil) ⇒ Test
constructor
A new instance of Test.
- #inspect ⇒ Object
- #line_num ⇒ Object
- #name ⇒ Object
- #output ⇒ Object
- #run(&result_callback) ⇒ Object
- #run_time ⇒ Object
Constructor Details
#initialize(build_data = nil) ⇒ Test
Returns a new instance of Test.
34 35 36 37 |
# File 'lib/assert/test.rb', line 34 def initialize(build_data = nil) @build_data = build_data || {} @result_callback = nil end |
Class Method Details
.for_block(name, context_info, config, &block) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/assert/test.rb', line 18 def self.for_block(name, context_info, config, &block) self.new(self.name_file_line_context_data(context_info, name).merge({ :context_info => context_info, :config => config, :code => block })) end |
.for_method(method_name, context_info, config) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/assert/test.rb', line 26 def self.for_method(method_name, context_info, config) self.new(self.name_file_line_context_data(context_info, method_name).merge({ :context_info => context_info, :config => config, :code => proc{ self.send(method_name) } })) end |
.name_file_line_context_data(ci, name) ⇒ Object
a Test is some code/method to run in the scope of a Context that may produce results
12 13 14 15 16 |
# File 'lib/assert/test.rb', line 12 def self.name_file_line_context_data(ci, name) { :name => ci.test_name(name), :file_line => ci.called_from } end |
Instance Method Details
#<=>(other_test) ⇒ Object
85 86 87 |
# File 'lib/assert/test.rb', line 85 def <=>(other_test) self.name <=> other_test.name end |
#code ⇒ Object
70 71 72 |
# File 'lib/assert/test.rb', line 70 def code @code ||= @build_data[:code] end |
#config ⇒ Object
66 67 68 |
# File 'lib/assert/test.rb', line 66 def config @config ||= @build_data[:config] end |
#context_class ⇒ Object
62 63 64 |
# File 'lib/assert/test.rb', line 62 def context_class self.context_info.klass end |
#context_info ⇒ Object
58 59 60 |
# File 'lib/assert/test.rb', line 58 def context_info @context_info ||= @build_data[:context_info] end |
#file_line ⇒ Object
39 40 41 |
# File 'lib/assert/test.rb', line 39 def file_line @file_line ||= FileLine.parse((@build_data[:file_line] || '').to_s) end |
#file_name ⇒ Object
43 |
# File 'lib/assert/test.rb', line 43 def file_name; self.file_line.file; end |
#inspect ⇒ Object
89 90 91 92 93 94 |
# File 'lib/assert/test.rb', line 89 def inspect attributes_string = ([:name, :context_info].collect do |attr| "@#{attr}=#{self.send(attr).inspect}" end).join(" ") "#<#{self.class}:#{'0x0%x' % (object_id << 1)} #{attributes_string}>" end |
#line_num ⇒ Object
44 |
# File 'lib/assert/test.rb', line 44 def line_num; self.file_line.line.to_i; end |
#name ⇒ Object
46 47 48 |
# File 'lib/assert/test.rb', line 46 def name @name ||= (@build_data[:name] || '') end |
#output ⇒ Object
50 51 52 |
# File 'lib/assert/test.rb', line 50 def output @output ||= (@build_data[:output] || '') end |
#run(&result_callback) ⇒ Object
74 75 76 77 78 79 80 81 82 83 |
# File 'lib/assert/test.rb', line 74 def run(&result_callback) @result_callback = result_callback || proc{ |result| } # noop by default scope = self.context_class.new(self, self.config, @result_callback) start_time = Time.now capture_output do self.context_class.run_arounds(scope){ run_test(scope) } end @result_callback = nil @run_time = Time.now - start_time end |
#run_time ⇒ Object
54 55 56 |
# File 'lib/assert/test.rb', line 54 def run_time @run_time ||= (@build_data[:run_time] || 0) end |