rr 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. checksums.yaml +4 -4
  2. data/Appraisals +3 -43
  3. data/CHANGES.md +46 -0
  4. data/CREDITS.md +5 -0
  5. data/Gemfile +3 -12
  6. data/README.md +25 -24
  7. data/Rakefile +16 -38
  8. data/doc/02_syntax_comparison.md +1 -0
  9. data/lib/rr/core_ext/array.rb +2 -0
  10. data/lib/rr/core_ext/hash.rb +2 -0
  11. data/lib/rr/deprecations.rb +97 -0
  12. data/lib/rr/double_definitions/double_injections/any_instance_of.rb +1 -1
  13. data/lib/rr/double_definitions/double_injections/instance.rb +2 -2
  14. data/lib/rr/dsl.rb +152 -0
  15. data/lib/rr/injections/method_missing_injection.rb +6 -2
  16. data/lib/rr/integrations/minitest_4.rb +1 -1
  17. data/lib/rr/integrations/minitest_4_active_support.rb +1 -1
  18. data/lib/rr/integrations/rspec/invocation_matcher.rb +0 -8
  19. data/lib/rr/integrations/rspec_2.rb +20 -2
  20. data/lib/rr/recorded_call.rb +29 -0
  21. data/lib/rr/recorded_calls.rb +8 -4
  22. data/lib/rr/space.rb +1 -1
  23. data/lib/rr/spy_verification.rb +13 -5
  24. data/lib/rr/version.rb +1 -1
  25. data/lib/rr/wildcard_matchers.rb +10 -10
  26. data/lib/rr/without_autohook.rb +5 -13
  27. data/rr.gemspec +3 -3
  28. data/spec/defines_spec_suite_tasks.rb +12 -0
  29. data/spec/global_helper.rb +5 -0
  30. data/spec/spec_suite_configuration.rb +1 -7
  31. data/spec/suites.yml +1 -1
  32. data/spec/suites/rspec_2/functional/any_instance_of_spec.rb +133 -33
  33. data/spec/suites/rspec_2/functional/dont_allow_spec.rb +13 -8
  34. data/spec/suites/rspec_2/functional/mock_bang_spec.rb +20 -0
  35. data/spec/suites/rspec_2/functional/mock_instance_of_spec.rb +14 -0
  36. data/spec/suites/rspec_2/functional/mock_instance_of_strong_spec.rb +15 -0
  37. data/spec/suites/rspec_2/functional/mock_proxy_instance_of_spec.rb +15 -0
  38. data/spec/suites/rspec_2/functional/mock_proxy_spec.rb +14 -0
  39. data/spec/suites/rspec_2/functional/mock_spec.rb +8 -232
  40. data/spec/suites/rspec_2/functional/mock_strong_spec.rb +14 -0
  41. data/spec/suites/rspec_2/functional/received_spec.rb +16 -0
  42. data/spec/suites/rspec_2/functional/spy_spec.rb +89 -28
  43. data/spec/suites/rspec_2/functional/stub_bang_spec.rb +20 -0
  44. data/spec/suites/rspec_2/functional/stub_instance_of_spec.rb +15 -0
  45. data/spec/suites/rspec_2/functional/stub_instance_of_strong_spec.rb +15 -0
  46. data/spec/suites/rspec_2/functional/stub_proxy_instance_of_spec.rb +16 -0
  47. data/spec/suites/rspec_2/functional/stub_proxy_spec.rb +45 -0
  48. data/spec/suites/rspec_2/functional/stub_spec.rb +42 -161
  49. data/spec/suites/rspec_2/functional/stub_strong_spec.rb +15 -0
  50. data/spec/suites/rspec_2/helper.rb +2 -2
  51. data/spec/suites/rspec_2/support/mixins/double_definition_creator_helpers.rb +173 -0
  52. data/spec/suites/rspec_2/support/mixins/mock_definition_creator_helpers.rb +45 -0
  53. data/spec/suites/rspec_2/support/mixins/proxy_definition_creator_helpers.rb +33 -0
  54. data/spec/suites/rspec_2/support/mixins/stub_creator_helpers.rb +43 -0
  55. data/spec/suites/rspec_2/support/mixins/stub_definition_creator_helpers.rb +45 -0
  56. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_never_called_qualifier.rb +39 -0
  57. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_times_called_qualifier.rb +50 -0
  58. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_without_qualifiers.rb +131 -0
  59. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/dont_allow.rb +148 -0
  60. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of.rb +26 -0
  61. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of_strong.rb +28 -0
  62. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_proxy.rb +11 -0
  63. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_strong.rb +37 -0
  64. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mocking.rb +107 -0
  65. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of.rb +32 -0
  66. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of_strong.rb +39 -0
  67. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_proxy.rb +11 -0
  68. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_strong.rb +37 -0
  69. data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stubbing.rb +57 -0
  70. data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/array_flatten_bug.rb +35 -0
  71. data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/block_form.rb +31 -0
  72. data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/comparing_arity.rb +63 -0
  73. data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/object_is_proxy.rb +43 -0
  74. data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/sequential_invocations.rb +26 -0
  75. data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/setting_implementation.rb +51 -0
  76. data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/yields.rb +81 -0
  77. data/spec/suites/rspec_2/unit/core_ext/enumerable_spec.rb +0 -28
  78. data/spec/suites/rspec_2/unit/deprecations_spec.rb +27 -0
  79. data/spec/suites/rspec_2/unit/dsl/double_creators_spec.rb +133 -0
  80. data/spec/suites/rspec_2/unit/dsl/space_spec.rb +99 -0
  81. data/spec/suites/rspec_2/unit/dsl/wildcard_matchers_spec.rb +67 -0
  82. data/spec/suites/rspec_2/unit/integrations/rspec_spec.rb +4 -19
  83. data/spec/suites/rspec_2/unit/space_spec.rb +5 -3
  84. data/spec/suites/rspec_2/unit/spy_verification_spec.rb +1 -1
  85. data/spec/support/adapter.rb +1 -1
  86. data/spec/support/adapter_tests/rspec.rb +19 -15
  87. data/spec/support/project/generator.rb +0 -4
  88. metadata +55 -48
  89. data/gemfiles/ruby_18_rspec_1.gemfile +0 -14
  90. data/gemfiles/ruby_18_rspec_1.gemfile.lock +0 -38
  91. data/gemfiles/ruby_18_rspec_1_rails_2.gemfile +0 -18
  92. data/gemfiles/ruby_18_rspec_1_rails_2.gemfile.lock +0 -64
  93. data/gemfiles/ruby_19_rspec_2_rails_3.gemfile +0 -15
  94. data/gemfiles/ruby_19_rspec_2_rails_3.gemfile.lock +0 -123
  95. data/lib/rr/adapters.rb +0 -34
  96. data/lib/rr/adapters/rr_methods.rb +0 -142
  97. data/lib/rr/integrations/rspec_1.rb +0 -46
  98. data/lib/rr/integrations/test_unit_1.rb +0 -63
  99. data/lib/rr/integrations/test_unit_2.rb +0 -17
  100. data/lib/rr/integrations/test_unit_200.rb +0 -27
  101. data/lib/rr/integrations/test_unit_200_active_support.rb +0 -25
  102. data/lib/rr/integrations/test_unit_2_active_support.rb +0 -38
  103. data/spec/suites/rspec_1/helper.rb +0 -24
  104. data/spec/suites/rspec_1/integration/rspec_1_spec.rb +0 -93
  105. data/spec/suites/rspec_1/integration/test_unit_1_spec.rb +0 -102
  106. data/spec/suites/rspec_1/integration/test_unit_2_spec.rb +0 -109
  107. data/spec/suites/rspec_1/spec_helper.rb +0 -3
  108. data/spec/suites/rspec_1_rails_2/integration/astc_rails_2_spec.rb +0 -141
  109. data/spec/suites/rspec_1_rails_2/integration/rspec_1_rails_2_spec.rb +0 -132
  110. data/spec/suites/rspec_1_rails_2/integration/test_unit_1_rails_2_spec.rb +0 -141
  111. data/spec/suites/rspec_1_rails_2/integration/test_unit_2_rails_2_spec.rb +0 -148
  112. data/spec/suites/rspec_1_rails_2/spec_helper.rb +0 -3
  113. data/spec/suites/rspec_2/functional/dsl_spec.rb +0 -13
  114. data/spec/suites/rspec_2/functional/instance_of_spec.rb +0 -14
  115. data/spec/suites/rspec_2/functional/proxy_spec.rb +0 -136
  116. data/spec/suites/rspec_2/functional/strong_spec.rb +0 -79
  117. data/spec/suites/rspec_2/integration/test_unit_200_spec.rb +0 -102
  118. data/spec/suites/rspec_2/integration/test_unit_2_spec.rb +0 -109
  119. data/spec/suites/rspec_2/unit/adapters/rr_methods/double_creators_spec.rb +0 -135
  120. data/spec/suites/rspec_2/unit/adapters/rr_methods/space_spec.rb +0 -101
  121. data/spec/suites/rspec_2/unit/adapters/rr_methods/wildcard_matchers_spec.rb +0 -69
  122. data/spec/suites/rspec_2_rails_3/integration/astc_rails_3_spec.rb +0 -141
  123. data/spec/suites/rspec_2_rails_3/integration/minitest_4_rails_3_spec.rb +0 -148
  124. data/spec/suites/rspec_2_rails_3/integration/rspec_2_rails_3_spec.rb +0 -172
  125. data/spec/suites/rspec_2_rails_3/integration/test_unit_200_rails_3_spec.rb +0 -141
  126. data/spec/suites/rspec_2_rails_3/integration/test_unit_2_rails_3_spec.rb +0 -148
  127. data/spec/suites/rspec_2_rails_3/spec_helper.rb +0 -3
  128. data/spec/suites/rspec_2_rails_4/integration/test_unit_200_rails_4_spec.rb +0 -142
  129. data/spec/suites/rspec_2_rails_4/integration/test_unit_2_rails_4_spec.rb +0 -149
@@ -1,34 +0,0 @@
1
- module RR
2
- module Adapters
3
- class << self
4
- DEPRECATED_ADAPTERS = [
5
- :MiniTest,
6
- :TestUnit,
7
- :RSpec2
8
- ]
9
-
10
- def const_missing(adapter_const_name)
11
- unless DEPRECATED_ADAPTERS.include?(adapter_const_name)
12
- super
13
- return
14
- end
15
-
16
- show_warning_for(adapter_const_name)
17
- RR.autohook
18
-
19
- Module.new
20
- end
21
-
22
- private
23
-
24
- def show_warning_for(adapter_const_name)
25
- warn <<EOT
26
- --------------------------------------------------------------------------------
27
- RR deprecation warning: RR now has an autohook system. You don't need to
28
- `include RR::Adapters::*` in your test framework's base class anymore.
29
- --------------------------------------------------------------------------------
30
- EOT
31
- end
32
- end
33
- end
34
- end
@@ -1,142 +0,0 @@
1
- module RR
2
- module Adapters
3
- module RRMethods
4
- include ::RR::DoubleDefinitions::Strategies::StrategyMethods
5
-
6
- def mock(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block)
7
- double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new
8
- double_definition_create.mock(subject, method_name, &definition_eval_block)
9
- end
10
-
11
- def stub(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block)
12
- double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new
13
- double_definition_create.stub(subject, method_name, &definition_eval_block)
14
- end
15
-
16
- def dont_allow(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block)
17
- double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new
18
- double_definition_create.dont_allow(subject, method_name, &definition_eval_block)
19
- end
20
-
21
- def proxy(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block)
22
- double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new
23
- double_definition_create.proxy(subject, method_name, &definition_eval_block)
24
- end
25
-
26
- def strong(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block)
27
- double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new
28
- double_definition_create.strong(subject, method_name, &definition_eval_block)
29
- end
30
-
31
- def instance_of(subject=DoubleDefinitions::DoubleDefinitionCreate::NO_SUBJECT, method_name=nil, &definition_eval_block)
32
- double_definition_create = DoubleDefinitions::DoubleDefinitionCreate.new
33
- double_definition_create.instance_of(subject, method_name, &definition_eval_block)
34
- end
35
-
36
- def any_instance_of(*args, &block)
37
- RR::DoubleDefinitions::DoubleInjections::AnyInstanceOf.call(*args, &block)
38
- end
39
-
40
- # Verifies all the DoubleInjection objects have met their
41
- # TimesCalledExpectations.
42
- def verify
43
- RR::Space.instance.verify_doubles
44
- end
45
-
46
- # Resets the registered Doubles and ordered Doubles
47
- def reset
48
- RR::Space.instance.reset
49
- end
50
-
51
- # Returns a AnyTimesMatcher. This is meant to be passed in as an argument
52
- # to Double#times.
53
- #
54
- # mock(object).method_name(anything).times(any_times) {return_value}
55
- def any_times
56
- TimesCalledMatchers::AnyTimesMatcher.new
57
- end
58
-
59
- # Sets up an Anything wildcard ArgumentEqualityExpectation
60
- # that succeeds when passed any argument.
61
- # mock(object).method_name(anything) {return_value}
62
- # object.method_name("an arbitrary value") # passes
63
- def anything
64
- RR::WildcardMatchers::Anything.new
65
- end
66
-
67
- # Sets up an IsA wildcard ArgumentEqualityExpectation
68
- # that succeeds when passed an argument of a certain type.
69
- # mock(object).method_name(is_a(String)) {return_value}
70
- # object.method_name("A String") # passes
71
- def is_a(klass)
72
- RR::WildcardMatchers::IsA.new(klass)
73
- end
74
-
75
- # Sets up an Numeric wildcard ArgumentEqualityExpectation
76
- # that succeeds when passed an argument that is ::Numeric.
77
- # mock(object).method_name(numeric) {return_value}
78
- # object.method_name(99) # passes
79
- def numeric
80
- RR::WildcardMatchers::Numeric.new
81
- end
82
-
83
- # Sets up an Boolean wildcard ArgumentEqualityExpectation
84
- # that succeeds when passed an argument that is a ::Boolean.
85
- # mock(object).method_name(boolean) {return_value}
86
- # object.method_name(false) # passes
87
- def boolean
88
- RR::WildcardMatchers::Boolean.new
89
- end
90
-
91
- # Sets up a DuckType wildcard ArgumentEqualityExpectation
92
- # that succeeds when the passed argument implements the methods.
93
- # arg = Object.new
94
- # def arg.foo; end
95
- # def arg.bar; end
96
- # mock(object).method_name(duck_type(:foo, :bar)) {return_value}
97
- # object.method_name(arg) # passes
98
- def duck_type(*args)
99
- RR::WildcardMatchers::DuckType.new(*args)
100
- end
101
-
102
- # Sets up a HashIncluding wildcard ArgumentEqualityExpectation
103
- # that succeeds when the passed argument contains at least those keys
104
- # and values of the expectation.
105
- # mock(object).method_name(hash_including(:foo => 1)) {return_value}
106
- # object.method_name({:foo => 1, :bar => 2) # passes
107
- def hash_including(expected_hash)
108
- RR::WildcardMatchers::HashIncluding.new(expected_hash)
109
- end
110
-
111
- # Sets up a Satisfy wildcard ArgumentEqualityExpectation
112
- # that succeeds when the passed argument causes the expectation's
113
- # proc to return true.
114
- # mock(object).method_name(satisfy {|arg| arg == :foo}) {return_value}
115
- # object.method_name(:foo) # passes
116
- def satisfy(expectation_proc=nil, &block)
117
- expectation_proc ||= block
118
- RR::WildcardMatchers::Satisfy.new(expectation_proc)
119
- end
120
-
121
- def spy(subject)
122
- methods_to_stub = subject.public_methods.map {|method_name| method_name.to_sym} -
123
- [:methods, :==, :__send__, :__id__, :object_id, :class]
124
- methods_to_stub.each do |method|
125
- stub.proxy(subject, method)
126
- end
127
- end
128
-
129
- def received(subject)
130
- RR::SpyVerificationProxy.new(subject)
131
- end
132
-
133
- instance_methods.each do |name|
134
- alias_method "rr_#{name}", name
135
- end
136
- end
137
- end
138
-
139
- module Extensions
140
- InstanceMethods = Adapters::RRMethods
141
- end
142
- end
@@ -1,46 +0,0 @@
1
- module RR
2
- module Integrations
3
- class RSpec1
4
- module Mixin
5
- def setup_mocks_for_rspec
6
- RR.reset
7
- end
8
-
9
- def verify_mocks_for_rspec
10
- RR.verify
11
- end
12
-
13
- def teardown_mocks_for_rspec
14
- RR.reset
15
- end
16
-
17
- def have_received(method = nil)
18
- RSpec::InvocationMatcher.new(method)
19
- end
20
- end
21
-
22
- def name
23
- 'RSpec 1'
24
- end
25
-
26
- def applies?
27
- defined?(::Spec) &&
28
- defined?(::Spec::VERSION::STRING) &&
29
- ::Spec::VERSION::STRING =~ /^1/
30
- end
31
-
32
- def hook
33
- ::Spec::Runner.configure do |config|
34
- config.mock_with Mixin
35
- config.include RR::Adapters::RRMethods
36
- end
37
- patterns = ::Spec::Runner::QuietBacktraceTweaker::IGNORE_PATTERNS
38
- unless patterns.include?(RR::Errors::BACKTRACE_IDENTIFIER)
39
- patterns.push(RR::Errors::BACKTRACE_IDENTIFIER)
40
- end
41
- end
42
- end
43
-
44
- RR.register_adapter RSpec1
45
- end
46
- end
@@ -1,63 +0,0 @@
1
- module RR
2
- module Integrations
3
- class TestUnit1
4
- module Mixin
5
- def assert_received(subject, &block)
6
- block.call(received(subject)).call
7
- end
8
- end
9
-
10
- def name
11
- 'Test::Unit 1'
12
- end
13
-
14
- def applies?
15
- defined?(::Test::Unit) &&
16
- defined?(::Test::Unit::TestCase) &&
17
- !has_test_unit_version? &&
18
- !test_unit_just_wraps_minitest?
19
- end
20
-
21
- def hook
22
- ::Test::Unit::TestCase.class_eval do
23
- include RR::Adapters::RRMethods
24
- include Mixin
25
-
26
- unless instance_methods.detect {|method_name| method_name.to_sym == :setup_with_rr }
27
- alias_method :setup_without_rr, :setup
28
- def setup_with_rr
29
- setup_without_rr
30
- RR.reset
31
- RR.trim_backtrace = true
32
- RR.overridden_error_class = ::Test::Unit::AssertionFailedError
33
- end
34
- alias_method :setup, :setup_with_rr
35
-
36
- alias_method :teardown_without_rr, :teardown
37
- def teardown_with_rr
38
- RR.verify
39
- ensure
40
- teardown_without_rr
41
- end
42
- alias_method :teardown, :teardown_with_rr
43
- end
44
- end
45
- end
46
-
47
- def test_unit_just_wraps_minitest?
48
- defined?(::Test::Unit::TestCase) &&
49
- defined?(::MiniTest::Unit::TestCase) &&
50
- ::Test::Unit::TestCase < ::MiniTest::Unit::TestCase
51
- end
52
-
53
- def has_test_unit_version?
54
- require 'test/unit/version'
55
- true
56
- rescue LoadError
57
- false
58
- end
59
- end
60
-
61
- RR.register_adapter TestUnit1
62
- end
63
- end
@@ -1,17 +0,0 @@
1
- module RR
2
- module Integrations
3
- class TestUnit2 < TestUnit1
4
- def name
5
- RR.ruby_18? ? 'Test::Unit 2.4.x' : 'Test::Unit >= 2.5'
6
- end
7
-
8
- def applies?
9
- defined?(::Test::Unit) &&
10
- defined?(::Test::Unit::TestCase) &&
11
- has_test_unit_version?
12
- end
13
- end
14
-
15
- RR.register_adapter TestUnit2
16
- end
17
- end
@@ -1,27 +0,0 @@
1
- module RR
2
- module Integrations
3
- class TestUnit200
4
- def initialize
5
- @mt4_adapter = RR.adapters_by_name[:MiniTest4]
6
- @tu_adapter = RR.adapters_by_name[:TestUnit1]
7
- end
8
-
9
- def name
10
- 'Test::Unit 2.0.0'
11
- end
12
-
13
- def applies?
14
- @mt4_adapter.applies? &&
15
- defined?(::Test::Unit) &&
16
- !@tu_adapter.has_test_unit_version? &&
17
- @tu_adapter.test_unit_just_wraps_minitest?
18
- end
19
-
20
- def hook
21
- @mt4_adapter.hook
22
- end
23
- end
24
-
25
- RR.register_adapter TestUnit200
26
- end
27
- end
@@ -1,25 +0,0 @@
1
- module RR
2
- module Integrations
3
- class TestUnit200ActiveSupport
4
- def initialize
5
- @mt4as_adapter = RR.adapters_by_name[:MiniTest4ActiveSupport]
6
- @tu200_adapter = RR.adapters_by_name[:TestUnit200]
7
- end
8
-
9
- def name
10
- "#{@tu200_adapter.name} + ActiveSupport"
11
- end
12
-
13
- def applies?
14
- @tu200_adapter.applies? && defined?(::ActiveSupport::TestCase)
15
- end
16
-
17
- def hook
18
- @mt4as_adapter.hook
19
- end
20
- end
21
-
22
- RR.register_adapter TestUnit200ActiveSupport
23
- end
24
- end
25
-
@@ -1,38 +0,0 @@
1
- module RR
2
- module Integrations
3
- class TestUnit2ActiveSupport
4
- def initialize
5
- @tu2_adapter = RR.adapters_by_name[:TestUnit2]
6
- end
7
-
8
- def name
9
- "#{@tu2_adapter.name} + ActiveSupport"
10
- end
11
-
12
- def applies?
13
- @tu2_adapter.applies? &&
14
- defined?(::ActiveSupport::TestCase)
15
- end
16
-
17
- def hook
18
- RR.trim_backtrace = true
19
- RR.overridden_error_class = ::Test::Unit::AssertionFailedError
20
-
21
- ::ActiveSupport::TestCase.class_eval do
22
- include RR::Adapters::RRMethods
23
- include TestUnit1::Mixin
24
-
25
- setup do
26
- RR.reset
27
- end
28
-
29
- teardown do
30
- RR.verify
31
- end
32
- end
33
- end
34
- end
35
-
36
- RR.register_adapter TestUnit2ActiveSupport
37
- end
38
- end
@@ -1,24 +0,0 @@
1
- require 'spec/autorun'
2
-
3
- require 'rr'
4
-
5
- module ExampleMethods
6
- def eigen(object)
7
- class << object; self; end
8
- end
9
- end
10
-
11
- module ExampleGroupMethods
12
- def macro(name, &implementation)
13
- (class << self; self; end).class_eval do
14
- define_method(name, &implementation)
15
- end
16
- end
17
- end
18
-
19
- Spec::Runner.configure do |c|
20
- c.include ExampleMethods
21
- c.extend ExampleGroupMethods
22
- end
23
-
24
- Dir[ File.expand_path('../shared/*.rb', __FILE__) ].each {|fn| require fn }
@@ -1,93 +0,0 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe 'Integration with RSpec 1' do
4
- include IntegrationTests::RubyRSpec
5
-
6
- def configure_project_generator(project_generator)
7
- super
8
- project_generator.configure do |project|
9
- project.rspec_version = 1
10
- end
11
- end
12
-
13
- def self.including_the_adapter_manually_works
14
- specify "including the adapter manually works" do
15
- project = generate_project do |project|
16
- project.add_to_prelude <<-EOT
17
- Spec::Runner.configure do |c|
18
- c.mock_with :rr
19
- end
20
- EOT
21
- end
22
- project.add_test_file do |file|
23
- file.add_working_test_case_with_adapter_tests do |test_case|
24
- test_case.add_to_body <<-EOT
25
- it 'loads the correct adapters' do
26
- assert_adapters_loaded #{adapters_that_should_be_loaded.inspect}
27
- end
28
- EOT
29
- end
30
- end
31
- result = project.run_tests
32
- result.should be_success
33
- result.should_not have_errors_or_failures
34
- end
35
- end
36
-
37
- def self.rr_hooks_into_the_test_framework_automatically
38
- specify "RR hooks into the test framework automatically" do
39
- project = generate_project
40
- project.add_test_file do |file|
41
- file.add_working_test_case
42
- end
43
- result = project.run_tests
44
- result.should be_success
45
- result.should_not have_errors_or_failures
46
- end
47
- end
48
-
49
- context 'when Bundler is autorequiring RR' do
50
- def configure_project_generator(project_generator)
51
- super
52
- project_generator.configure do |project|
53
- project.autorequire_gems = true
54
- end
55
- end
56
-
57
- def adapters_that_should_be_loaded
58
- [:RSpec1]
59
- end
60
-
61
- including_the_adapter_manually_works
62
- end
63
-
64
- context 'when RR is being required manually' do
65
- def configure_project_generator(project_generator)
66
- super
67
- project_generator.configure do |project|
68
- project.autorequire_gems = false
69
- end
70
- end
71
-
72
- def adapters_that_should_be_loaded
73
- [:RSpec1]
74
- end
75
-
76
- rr_hooks_into_the_test_framework_automatically
77
- including_the_adapter_manually_works
78
-
79
- specify "when RR raises an error it raises a failure not an exception" do
80
- project = generate_project
81
- project.add_test_file do |file|
82
- file.add_test_case do |test_case|
83
- test_case.add_test <<-EOT
84
- object = Object.new
85
- mock(object).foo
86
- EOT
87
- end
88
- end
89
- result = project.run_tests
90
- result.should fail_with_output(/1 failure/)
91
- end
92
- end
93
- end