Sha256: 21bde8b7f7f609e65a94e2a0a75cf38a99531658f8d5204706fa0a027a955d63
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 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 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 ? @parent.before_hooks + @before_hooks : @before_hooks end def after_hooks @parent ? @parent.after_hooks + @after_hooks : @after_hooks end def run runner runner.example_group_started self @examples.each { |example| example.run runner } runner.example_group_finished self end def description @parent ? "#{@parent.description} #{@desc}" : @desc end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
opal-spec-0.0.3 | lib/opal/spec/example_group.rb |