Sha256: c782b4e2afbde555705a5cf7bc50d264a462806e0b8d5d47cefb91893618a1ff
Contents?: true
Size: 1.93 KB
Versions: 3
Compression:
Stored size: 1.93 KB
Contents
module OpalSpec class ExampleGroup @example_groups = [] def self.example_groups @example_groups end @stack = [] def self.create desc, block group = self.new desc, @stack.last @example_groups << group @stack << group group.instance_eval &block @stack.pop end def initialize desc, parent @desc = desc.to_s @parent = parent @examples = [] @before_hooks = [] @after_hooks = [] end def it(desc, &block) @examples << Example.new(self, desc, block) end def async(desc, &block) example = Example.new(self, desc, block) example.asynchronous = true @examples << example end def it_behaves_like(*objs) end def before type = :each, &block raise "unsupported before type: #{type}" unless type == :each @before_hooks << block end def after type = :each, &block raise "unsupported after type: #{type}" unless type == :each @after_hooks << block end def before_hooks @parent ? [].concat(@parent.before_hooks).concat(@before_hooks) : @before_hooks end def after_hooks @parent ? [].concat(@parent.after_hooks).concat(@after_hooks) : @after_hooks end def run(runner) @runner = runner @runner.example_group_started self @running_examples = @examples.dup run_next_example end def run_next_example if @running_examples.empty? @runner.example_group_finished self else @running_examples.shift.run end end def example_started(example) @runner.example_started(example) end def example_passed(example) @runner.example_passed(example) run_next_example end def example_failed(example) @runner.example_failed(example) run_next_example end def description @parent ? "#{@parent.description} #{@desc}" : @desc end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
opal-spec-0.2.6 | lib/opal-spec/example_group.rb |
opal-spec-0.2.5 | lib/opal-spec/example_group.rb |
opal-spec-0.2.1 | lib/opal-spec/example_group.rb |