103 lines
No EOL
2 KiB
Ruby
103 lines
No EOL
2 KiB
Ruby
require 'stringio'
|
|
|
|
dir = File.dirname(__FILE__)
|
|
lib_path = File.expand_path("#{dir}/../lib")
|
|
$LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
|
|
$_spec_spec = true # Prevents Kernel.exit in various places
|
|
|
|
require 'spec'
|
|
require 'spec/mocks'
|
|
require 'spec/story'
|
|
spec_classes_path = File.expand_path("#{dir}/../spec/spec/spec_classes")
|
|
require spec_classes_path unless $LOAD_PATH.include?(spec_classes_path)
|
|
require File.dirname(__FILE__) + '/../lib/spec/expectations/differs/default'
|
|
|
|
module Spec
|
|
module Matchers
|
|
def fail
|
|
raise_error(Spec::Expectations::ExpectationNotMetError)
|
|
end
|
|
|
|
def fail_with(message)
|
|
raise_error(Spec::Expectations::ExpectationNotMetError, message)
|
|
end
|
|
|
|
class Pass
|
|
def matches?(proc, &block)
|
|
begin
|
|
proc.call
|
|
true
|
|
rescue Exception => @error
|
|
false
|
|
end
|
|
end
|
|
|
|
def failure_message
|
|
@error.message + "\n" + @error.backtrace.join("\n")
|
|
end
|
|
end
|
|
|
|
def pass
|
|
Pass.new
|
|
end
|
|
|
|
class CorrectlyOrderedMockExpectation
|
|
def initialize(&event)
|
|
@event = event
|
|
end
|
|
|
|
def expect(&expectations)
|
|
expectations.call
|
|
@event.call
|
|
end
|
|
end
|
|
|
|
def during(&block)
|
|
CorrectlyOrderedMockExpectation.new(&block)
|
|
end
|
|
end
|
|
end
|
|
|
|
class NonStandardError < Exception; end
|
|
|
|
module Custom
|
|
class ExampleGroupRunner
|
|
attr_reader :options, :arg
|
|
def initialize(options, arg)
|
|
@options, @arg = options, arg
|
|
end
|
|
|
|
def load_files(files)
|
|
end
|
|
|
|
def run
|
|
end
|
|
end
|
|
end
|
|
|
|
def exception_from(&block)
|
|
exception = nil
|
|
begin
|
|
yield
|
|
rescue StandardError => e
|
|
exception = e
|
|
end
|
|
exception
|
|
end
|
|
|
|
describe "sandboxed rspec_options", :shared => true do
|
|
attr_reader :options
|
|
|
|
before(:all) do
|
|
@original_rspec_options = $rspec_options
|
|
end
|
|
|
|
before(:each) do
|
|
@options = ::Spec::Runner::Options.new(StringIO.new, StringIO.new)
|
|
$rspec_options = options
|
|
end
|
|
|
|
after do
|
|
$rspec_options = @original_rspec_options
|
|
end
|
|
end |