Sha256: 45c06393daecd2eb7722c3ef0d5df8450939651f5922b479b9b84ff5982cc6ea
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 KB
Contents
module Spec module Runner class Specification def initialize(name, &block) @name = name @block = block @mocks = [] end def run(reporter=nil, setup_block=nil, teardown_block=nil, dry_run=false, execution_context=nil) reporter.spec_started(@name) if dry_run reporter.spec_finished(@name) else execution_context = ::Spec::Runner::ExecutionContext.new(self) unless execution_context errors = [] begin execution_context.instance_exec(&setup_block) unless setup_block.nil? setup_ok = true execution_context.instance_exec(&@block) spec_ok = true rescue => e errors << e end begin execution_context.instance_exec(&teardown_block) unless teardown_block.nil? teardown_ok = true @mocks.each do |mock| mock.__verify end rescue => e errors << e end reporter.spec_finished(@name, errors.first, failure_location(setup_ok, spec_ok, teardown_ok)) unless reporter.nil? end end def add_mock(mock) @mocks << mock end def matches_matcher?(matcher) matcher.matches? @name end private def failure_location(setup_ok, spec_ok, teardown_ok) return 'setup' unless setup_ok return @name unless spec_ok return 'teardown' unless teardown_ok end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rspec-0.5.14 | lib/spec/runner/specification.rb |
rspec-0.5.15 | lib/spec/runner/specification.rb |