-
-
Notifications
You must be signed in to change notification settings - Fork 763
/
spec_helper.rb
76 lines (64 loc) · 1.92 KB
/
spec_helper.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
dir = File.dirname(__FILE__)
lib_path = File.expand_path("#{dir}/../lib")
$LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
require 'rubygems'
$LOAD_PATH.unshift(File.expand_path('../../../expectations/lib'), __FILE__)
require 'rspec/expectations'
$LOAD_PATH.unshift(File.expand_path('../../../mocks/lib'), __FILE__)
require 'rspec/mocks'
$LOAD_PATH.unshift(File.expand_path('../../lib'), __FILE__)
require 'rspec/core'
Rspec::Core::ExampleGroup.send(:include, Rspec::Matchers)
def with_ruby(version)
yield if RUBY_PLATFORM =~ Regexp.compile("^#{version}")
end
require 'rubygems'
module Rspec
module Core
module Matchers
def fail
raise_error(::Rspec::Expectations::ExpectationNotMetError)
end
def fail_with(message)
raise_error(::Rspec::Expectations::ExpectationNotMetError, message)
end
end
end
end
def remove_last_describe_from_world
Rspec::Core.world.behaviours.pop
end
def isolate_example_group
if block_given?
example_groups = Rspec::Core.world.behaviours.dup
begin
Rspec::Core.world.behaviours.clear
yield
ensure
Rspec::Core.world.behaviours.clear
Rspec::Core.world.behaviours.concat(example_groups)
end
end
end
def double_describe(*args)
group = Rspec::Core::ExampleGroup.describe(*args) {}
remove_last_describe_from_world
yield group if block_given?
group
end
def use_formatter(new_formatter)
original_formatter = Rspec::Core.configuration.formatter
Rspec::Core.configuration.instance_variable_set(:@formatter, new_formatter)
yield
ensure
Rspec::Core.configuration.instance_variable_set(:@formatter, original_formatter)
end
def not_in_editor?
!(ENV.has_key?('TM_MODE') || ENV.has_key?('EMACS') || ENV.has_key?('VIM'))
end
Rspec::Core.configure do |c|
c.mock_framework = :rspec
# TODO: Filter run needs normal before/after/include filter logic
c.filter_run :focused => true
c.color_enabled = not_in_editor?
end