rr 1.1.2 → 3.0.2
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.
- checksums.yaml +5 -5
- data/Appraisals +3 -43
- data/CHANGES.md +93 -0
- data/CREDITS.md +5 -0
- data/Gemfile +1 -17
- data/README.md +29 -32
- data/Rakefile +42 -40
- data/doc/02_syntax_comparison.md +1 -0
- data/lib/rr/class_instance_method_defined.rb +1 -1
- data/lib/rr/core_ext/array.rb +2 -0
- data/lib/rr/core_ext/hash.rb +2 -0
- data/lib/rr/deprecations.rb +97 -0
- data/lib/rr/double.rb +28 -10
- data/lib/rr/double_definitions/double_definition.rb +39 -16
- data/lib/rr/double_definitions/double_definition_create.rb +5 -5
- data/lib/rr/double_definitions/double_definition_create_blank_slate.rb +10 -4
- data/lib/rr/double_definitions/double_injections/any_instance_of.rb +1 -1
- data/lib/rr/double_definitions/double_injections/instance.rb +2 -2
- data/lib/rr/double_definitions/strategies/strategy.rb +27 -8
- data/lib/rr/double_definitions/strategies/verification/mock.rb +8 -2
- data/lib/rr/double_matches.rb +4 -3
- data/lib/rr/dsl.rb +152 -0
- data/lib/rr/expectations/any_argument_expectation.rb +4 -4
- data/lib/rr/expectations/argument_equality_expectation.rb +43 -5
- data/lib/rr/injections/double_injection.rb +85 -26
- data/lib/rr/injections/method_missing_injection.rb +37 -6
- data/lib/rr/integrations/minitest_4.rb +1 -1
- data/lib/rr/integrations/minitest_4_active_support.rb +1 -1
- data/lib/rr/integrations/rspec/invocation_matcher.rb +0 -8
- data/lib/rr/integrations/rspec_2.rb +20 -2
- data/lib/rr/keyword_arguments.rb +15 -0
- data/lib/rr/method_dispatches/base_method_dispatch.rb +22 -5
- data/lib/rr/method_dispatches/method_dispatch.rb +21 -10
- data/lib/rr/method_dispatches/method_missing_dispatch.rb +14 -5
- data/lib/rr/recorded_call.rb +35 -0
- data/lib/rr/recorded_calls.rb +23 -9
- data/lib/rr/space.rb +15 -5
- data/lib/rr/spy_verification.rb +13 -5
- data/lib/rr/version.rb +1 -1
- data/lib/rr/wildcard_matchers.rb +10 -10
- data/lib/rr/without_autohook.rb +7 -14
- data/rr.gemspec +8 -3
- data/spec/defines_spec_suite_tasks.rb +12 -0
- data/spec/global_helper.rb +5 -0
- data/spec/spec_suite_configuration.rb +1 -7
- data/spec/suites.yml +0 -14
- data/spec/suites/rspec_2/functional/any_instance_of_spec.rb +133 -33
- data/spec/suites/rspec_2/functional/dont_allow_spec.rb +13 -8
- data/spec/suites/rspec_2/functional/mock_bang_spec.rb +20 -0
- data/spec/suites/rspec_2/functional/mock_instance_of_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/mock_instance_of_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/mock_proxy_instance_of_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/mock_proxy_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/mock_spec.rb +8 -232
- data/spec/suites/rspec_2/functional/mock_strong_spec.rb +14 -0
- data/spec/suites/rspec_2/functional/received_spec.rb +16 -0
- data/spec/suites/rspec_2/functional/spy_spec.rb +89 -28
- data/spec/suites/rspec_2/functional/stub_bang_spec.rb +20 -0
- data/spec/suites/rspec_2/functional/stub_instance_of_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/stub_instance_of_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/functional/stub_proxy_instance_of_spec.rb +16 -0
- data/spec/suites/rspec_2/functional/stub_proxy_spec.rb +45 -0
- data/spec/suites/rspec_2/functional/stub_spec.rb +42 -161
- data/spec/suites/rspec_2/functional/stub_strong_spec.rb +15 -0
- data/spec/suites/rspec_2/helper.rb +2 -2
- data/spec/suites/rspec_2/support/mixins/double_definition_creator_helpers.rb +173 -0
- data/spec/suites/rspec_2/support/mixins/mock_definition_creator_helpers.rb +45 -0
- data/spec/suites/rspec_2/support/mixins/proxy_definition_creator_helpers.rb +33 -0
- data/spec/suites/rspec_2/support/mixins/stub_creator_helpers.rb +43 -0
- data/spec/suites/rspec_2/support/mixins/stub_definition_creator_helpers.rb +45 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_never_called_qualifier.rb +39 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_with_times_called_qualifier.rb +50 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/argument_expectations_without_qualifiers.rb +131 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/dont_allow.rb +148 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of.rb +26 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_instance_of_strong.rb +28 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_proxy.rb +11 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mock_strong.rb +37 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/mocking.rb +107 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of.rb +32 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_instance_of_strong.rb +39 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_proxy.rb +11 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stub_strong.rb +37 -0
- data/spec/suites/rspec_2/support/shared_contexts/double_definition_creators/stubbing.rb +57 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/array_flatten_bug.rb +35 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/block_form.rb +31 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/comparing_arity.rb +63 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/object_is_proxy.rb +43 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/sequential_invocations.rb +26 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/setting_implementation.rb +51 -0
- data/spec/suites/rspec_2/support/shared_examples/double_definition_creators/yields.rb +81 -0
- data/spec/suites/rspec_2/unit/core_ext/enumerable_spec.rb +0 -28
- data/spec/suites/rspec_2/unit/deprecations_spec.rb +27 -0
- data/spec/suites/rspec_2/unit/double_definitions/double_definition_create_spec.rb +18 -18
- data/spec/suites/rspec_2/unit/dsl/double_creators_spec.rb +133 -0
- data/spec/suites/rspec_2/unit/dsl/space_spec.rb +99 -0
- data/spec/suites/rspec_2/unit/dsl/wildcard_matchers_spec.rb +67 -0
- data/spec/suites/rspec_2/unit/expectations/any_argument_expectation_spec.rb +9 -9
- data/spec/suites/rspec_2/unit/expectations/argument_equality_expectation_spec.rb +21 -21
- data/spec/suites/rspec_2/unit/expectations/boolean_argument_equality_expectation_spec.rb +4 -4
- data/spec/suites/rspec_2/unit/expectations/hash_including_argument_equality_expectation_spec.rb +31 -21
- data/spec/suites/rspec_2/unit/injections/double_injection/double_injection_spec.rb +0 -12
- data/spec/suites/rspec_2/unit/integrations/rspec_spec.rb +4 -19
- data/spec/suites/rspec_2/unit/space_spec.rb +7 -4
- data/spec/suites/rspec_2/unit/spy_verification_spec.rb +1 -1
- data/spec/support/adapter.rb +1 -1
- data/spec/support/adapter_tests/rspec.rb +19 -15
- data/spec/support/project/generator.rb +0 -4
- metadata +112 -57
- data/gemfiles/ruby_18_rspec_1.gemfile +0 -14
- data/gemfiles/ruby_18_rspec_1.gemfile.lock +0 -38
- data/gemfiles/ruby_18_rspec_1_rails_2.gemfile +0 -18
- data/gemfiles/ruby_18_rspec_1_rails_2.gemfile.lock +0 -64
- data/gemfiles/ruby_19_rspec_2_rails_3.gemfile +0 -15
- data/gemfiles/ruby_19_rspec_2_rails_3.gemfile.lock +0 -123
- data/lib/rr/adapters.rb +0 -34
- data/lib/rr/adapters/rr_methods.rb +0 -142
- data/lib/rr/integrations/rspec_1.rb +0 -46
- data/lib/rr/integrations/test_unit_1.rb +0 -63
- data/lib/rr/integrations/test_unit_2.rb +0 -17
- data/lib/rr/integrations/test_unit_200.rb +0 -27
- data/lib/rr/integrations/test_unit_200_active_support.rb +0 -25
- data/lib/rr/integrations/test_unit_2_active_support.rb +0 -38
- data/lib/rr/proc_from_block.rb +0 -11
- data/spec/suites/rspec_1/helper.rb +0 -24
- data/spec/suites/rspec_1/integration/rspec_1_spec.rb +0 -93
- data/spec/suites/rspec_1/integration/test_unit_1_spec.rb +0 -102
- data/spec/suites/rspec_1/integration/test_unit_2_spec.rb +0 -109
- data/spec/suites/rspec_1/spec_helper.rb +0 -3
- data/spec/suites/rspec_1_rails_2/integration/astc_rails_2_spec.rb +0 -141
- data/spec/suites/rspec_1_rails_2/integration/rspec_1_rails_2_spec.rb +0 -132
- data/spec/suites/rspec_1_rails_2/integration/test_unit_1_rails_2_spec.rb +0 -141
- data/spec/suites/rspec_1_rails_2/integration/test_unit_2_rails_2_spec.rb +0 -148
- data/spec/suites/rspec_1_rails_2/spec_helper.rb +0 -3
- data/spec/suites/rspec_2/functional/dsl_spec.rb +0 -13
- data/spec/suites/rspec_2/functional/instance_of_spec.rb +0 -14
- data/spec/suites/rspec_2/functional/proxy_spec.rb +0 -136
- data/spec/suites/rspec_2/functional/strong_spec.rb +0 -79
- data/spec/suites/rspec_2/integration/rspec_2_spec.rb +0 -133
- data/spec/suites/rspec_2/integration/test_unit_200_spec.rb +0 -102
- data/spec/suites/rspec_2/integration/test_unit_2_spec.rb +0 -109
- data/spec/suites/rspec_2/unit/adapters/rr_methods/double_creators_spec.rb +0 -135
- data/spec/suites/rspec_2/unit/adapters/rr_methods/space_spec.rb +0 -101
- data/spec/suites/rspec_2/unit/adapters/rr_methods/wildcard_matchers_spec.rb +0 -69
- data/spec/suites/rspec_2/unit/proc_from_block_spec.rb +0 -14
- data/spec/suites/rspec_2_rails_3/integration/astc_rails_3_spec.rb +0 -141
- data/spec/suites/rspec_2_rails_3/integration/minitest_4_rails_3_spec.rb +0 -148
- data/spec/suites/rspec_2_rails_3/integration/rspec_2_rails_3_spec.rb +0 -172
- data/spec/suites/rspec_2_rails_3/integration/test_unit_200_rails_3_spec.rb +0 -141
- data/spec/suites/rspec_2_rails_3/integration/test_unit_2_rails_3_spec.rb +0 -148
- data/spec/suites/rspec_2_rails_3/spec_helper.rb +0 -3
- data/spec/suites/rspec_2_rails_4/integration/astc_rails_4_spec.rb +0 -142
- data/spec/suites/rspec_2_rails_4/integration/minitest_4_rails_4_spec.rb +0 -149
- data/spec/suites/rspec_2_rails_4/integration/rspec_2_rails_4_spec.rb +0 -173
- data/spec/suites/rspec_2_rails_4/integration/test_unit_200_rails_4_spec.rb +0 -142
- data/spec/suites/rspec_2_rails_4/integration/test_unit_2_rails_4_spec.rb +0 -149
- data/spec/suites/rspec_2_rails_4/spec_helper.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2b7ca60f4fec0c9f87e1710f6b7faf5ed8a1d52d6c8dd7a8ba82667c1ba920d7
|
4
|
+
data.tar.gz: 8c80f469725cc6875ea30384439dc6347e2c998f042c9522eb2c8964a9f7f316
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '07490a4037a941546b5b8c2139520d3c0d91d752a73e59cc52ef1bdae2ba2b0579deb57cd202db69eb96b67f89a5c5533699a0f6d439a787f8c999cf10f5bf7d'
|
7
|
+
data.tar.gz: '094e48f18e353e818ed21492f95fdc9fb15c23d01ae17689e0c044f86e6282736a73622451633daf88b04602f31b2848a84996cdd62965be717187dcc1f36b08'
|
data/Appraisals
CHANGED
@@ -1,46 +1,6 @@
|
|
1
|
-
|
2
|
-
ruby_18_rails_2 = proc do
|
3
|
-
gem 'rails', '~> 2.3'
|
4
|
-
gem 'mocha', '~> 0.12.0'
|
5
|
-
gem 'sqlite3', '~> 1.3', :platforms => :ruby
|
6
|
-
gem 'activerecord-jdbcsqlite3-adapter', :platforms => :jruby
|
7
|
-
end
|
8
|
-
|
9
|
-
#---
|
10
|
-
|
11
|
-
appraise 'ruby_18_rspec_1' do
|
12
|
-
end
|
13
|
-
|
14
|
-
appraise 'ruby_18_rspec_1_rails_2' do
|
15
|
-
instance_eval &ruby_18_rails_2
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
ruby_19_stuff = proc do
|
20
|
-
ruby_19_rails_3 = proc do
|
21
|
-
gem 'rails', '~> 3.0'
|
22
|
-
end
|
23
|
-
|
24
|
-
ruby_19_rails_4 = proc do
|
25
|
-
gem 'rails', '4.0.0'
|
26
|
-
end
|
27
|
-
|
28
|
-
#---
|
29
|
-
|
30
|
-
appraise 'ruby_19_rspec_2' do
|
31
|
-
end
|
32
|
-
|
33
|
-
appraise 'ruby_19_rspec_2_rails_3' do
|
34
|
-
instance_eval &ruby_19_rails_3
|
35
|
-
end
|
36
|
-
|
37
|
-
appraise 'ruby_19_rspec_2_rails_4' do
|
38
|
-
instance_eval &ruby_19_rails_4
|
39
|
-
end
|
1
|
+
appraise 'ruby_19_rspec_2' do
|
40
2
|
end
|
41
3
|
|
42
|
-
|
43
|
-
|
44
|
-
else
|
45
|
-
instance_eval &ruby_19_stuff
|
4
|
+
appraise 'ruby_19_rspec_2_rails_4' do
|
5
|
+
gem 'rails', '4.0.0'
|
46
6
|
end
|
data/CHANGES.md
CHANGED
@@ -1,5 +1,98 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.0.2 - 2021-06-18
|
4
|
+
|
5
|
+
### Improvements
|
6
|
+
|
7
|
+
* `stub`: Added support for Ruby 3.0's keyword arguments.
|
8
|
+
[GitHub#82][Reported by akira yamada]
|
9
|
+
|
10
|
+
### Thanks
|
11
|
+
|
12
|
+
* akira yamada
|
13
|
+
|
14
|
+
## 3.0.1 - 2021-06-18
|
15
|
+
|
16
|
+
### Improvements
|
17
|
+
|
18
|
+
* Suppressed keyword arguments related warnings on Ruby 2.7.
|
19
|
+
[GitHub#81][Reported by akira yamada]
|
20
|
+
|
21
|
+
### Thanks
|
22
|
+
|
23
|
+
* akira yamada
|
24
|
+
|
25
|
+
## 3.0.0 - 2021-03-31
|
26
|
+
|
27
|
+
### Improvements
|
28
|
+
|
29
|
+
* Added support for Ruby 3.0's keyword arguments.
|
30
|
+
[GitHub#17][Reported by Takuro Ashie]
|
31
|
+
|
32
|
+
### Fixes
|
33
|
+
|
34
|
+
* Fixed a bug that `any_instance_of` doesn't work with class
|
35
|
+
hierarchies. [GitHub#12][Reported by Étienne Barrié]
|
36
|
+
|
37
|
+
### Thanks
|
38
|
+
|
39
|
+
* Étienne Barrié
|
40
|
+
|
41
|
+
* Takuro Ashie
|
42
|
+
|
43
|
+
## 1.2.1 - 2017-06-22
|
44
|
+
|
45
|
+
### Fixes
|
46
|
+
|
47
|
+
* Fixed a bug that `RR.reset` resets newly created methods.
|
48
|
+
[GitHub#8]
|
49
|
+
|
50
|
+
## 1.2.0 - 2016-05-30
|
51
|
+
|
52
|
+
### Improvements
|
53
|
+
|
54
|
+
* Renamed RR::Adapters::RRMethods to RR::DSL.
|
55
|
+
|
56
|
+
* Deprecated RRMethods.
|
57
|
+
|
58
|
+
* Updated document. [GitHub#57][Patch by Nikolay Shebanov]
|
59
|
+
|
60
|
+
* Dropped Ruby 1.8 support.
|
61
|
+
|
62
|
+
* Dropped Ruby 1.9 support.
|
63
|
+
|
64
|
+
* Dropped Rails 3 support.
|
65
|
+
|
66
|
+
* Dropped test-unit integration support. Use
|
67
|
+
[test-unit-rr](https://test-unit.github.io/#test-unit-rr).
|
68
|
+
|
69
|
+
* Supported OpenStruct in Ruby 2.3
|
70
|
+
[GitHub#64][Reported by soylent][Reported by Arthur Le Maitre]
|
71
|
+
|
72
|
+
### Fixes
|
73
|
+
|
74
|
+
* Fixed using RSpec's RR adapter to not override our RSpec adapter.
|
75
|
+
If RR is required and then you use `mock_with :rr` you would not be able to
|
76
|
+
use `have_received`.
|
77
|
+
|
78
|
+
* Fixed a bug that `Hash` argument is too wild.
|
79
|
+
[GitHub#54][Reported by Yutaka HARA]
|
80
|
+
|
81
|
+
* Fixed a bug that `Array` argument is too wild.
|
82
|
+
[GitHub#54][Reported by Skye Shaw]
|
83
|
+
|
84
|
+
### Thanks
|
85
|
+
|
86
|
+
* Nikolay Shebanov
|
87
|
+
|
88
|
+
* Yutaka HARA
|
89
|
+
|
90
|
+
* Skye Shaw
|
91
|
+
|
92
|
+
* soylent
|
93
|
+
|
94
|
+
* Arthur Le Maitre
|
95
|
+
|
3
96
|
## 1.1.2 (August 17, 2013)
|
4
97
|
|
5
98
|
* Add tests, appraisals, etc. back to the published gem ([#32][i32]).
|
data/CREDITS.md
CHANGED
data/Gemfile
CHANGED
@@ -1,19 +1,3 @@
|
|
1
1
|
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
|
4
|
-
gem 'aws-sdk', '~> 1.0'
|
5
|
-
gem 'minitar', '~> 0.5'
|
6
|
-
gem 'dotenv', '~> 0.7'
|
7
|
-
gem 'simplecov', '~> 0.7'
|
8
|
-
gem 'appraisal', '~> 0.5'
|
9
|
-
gem 'posix-spawn', :platforms => :mri
|
10
|
-
gem 'open4', :platforms => :mri
|
11
|
-
|
12
|
-
# Put this here instead of in Appraisals so that when running a single test file
|
13
|
-
# in development we can say `rspec ...` or `spec ...` instead of having to
|
14
|
-
# prepend it with BUNDLE_GEMFILE=...
|
15
|
-
if RUBY_VERSION =~ /^1\.8/
|
16
|
-
gem 'rspec', '~> 1.3'
|
17
|
-
else
|
18
|
-
gem 'rspec', '~> 2.14'
|
19
|
-
end
|
3
|
+
gemspec
|
data/README.md
CHANGED
@@ -1,8 +1,17 @@
|
|
1
|
-
# RR [](https://badge.fury.io/rb/rr) [](https://travis-ci.org/rr/rr) [](https://codeclimate.com/github/rr/rr)
|
2
2
|
|
3
3
|
RR is a test double framework for Ruby that features a rich selection of double
|
4
4
|
techniques and a terse syntax.
|
5
5
|
|
6
|
+
---
|
7
|
+
|
8
|
+
## Learning more
|
9
|
+
|
10
|
+
1. [A whirlwind tour of RR](#a-whirlwind-tour-of-rr)
|
11
|
+
2. [What is a test double?](doc/01_test_double.md)
|
12
|
+
3. [Syntax between RR and other double/mock frameworks](doc/02_syntax_comparison.md)
|
13
|
+
4. [API overview - Full listing of DSL methods](doc/03_api_overview.md)
|
14
|
+
|
6
15
|
|
7
16
|
## A whirlwind tour of RR
|
8
17
|
|
@@ -87,6 +96,11 @@ end
|
|
87
96
|
|
88
97
|
## Installing RR into your project
|
89
98
|
|
99
|
+
NOTE: If you want to use RR with
|
100
|
+
[test-unit](https://test-unit.github.io/), use
|
101
|
+
[test-unit-rr](https://test-unit.github.io/#test-unit-rr). You don't
|
102
|
+
need to read the following subsections.
|
103
|
+
|
90
104
|
For minimal setup, RR looks for an existing test framework and then hooks itself
|
91
105
|
into it. Hence, RR works best when loaded *after* the test framework that you
|
92
106
|
are using is loaded.
|
@@ -129,53 +143,35 @@ require 'your/test/framework' # if you are using something other than MiniTest
|
|
129
143
|
require 'rr'
|
130
144
|
~~~
|
131
145
|
|
132
|
-
|
133
|
-
## Learning more
|
134
|
-
|
135
|
-
1. [What is a test double?](doc/01_test_double.md)
|
136
|
-
2. [Syntax between RR and other double/mock frameworks](doc/02_syntax_comparison.md)
|
137
|
-
3. [API overview](doc/03_api_overview.md)
|
138
|
-
|
139
|
-
|
140
146
|
## Compatibility
|
141
147
|
|
142
148
|
RR is designed and tested to work against the following Ruby versions:
|
143
149
|
|
144
|
-
*
|
145
|
-
*
|
146
|
-
* 2.
|
150
|
+
* 2.4
|
151
|
+
* 2.5
|
152
|
+
* 2.6
|
153
|
+
* 2.7
|
154
|
+
* 3.0
|
147
155
|
* JRuby 1.7.4
|
148
156
|
|
149
157
|
as well as the following test frameworks:
|
150
158
|
|
151
|
-
*
|
152
|
-
* RSpec 2
|
153
|
-
*
|
154
|
-
*
|
155
|
-
* Test::Unit 2.0.0 (Ruby 1.9+)
|
156
|
-
* Test::Unit 2.5.x (Ruby 1.9+)
|
157
|
-
* MiniTest 4 (Ruby 1.9+)
|
158
|
-
* Minitest 5 (Ruby 1.9+)
|
159
|
-
|
160
|
-
and the following Rails versions:
|
161
|
-
|
162
|
-
* Rails 2.3.x (Ruby 1.8.7)
|
163
|
-
* Rails 3.2.x (Ruby 1.9+)
|
164
|
-
* Rails 4.0.x (Ruby 1.9+)
|
165
|
-
|
159
|
+
* Test::Unit via [test-unit-rr](https://test-unit.github.io/#test-unit-rr)
|
160
|
+
* RSpec 2
|
161
|
+
* MiniTest 4
|
162
|
+
* Minitest 5
|
166
163
|
|
167
164
|
## Help!
|
168
165
|
|
169
166
|
If you have a question or are having trouble, simply [post it as an
|
170
|
-
issue](
|
167
|
+
issue](https://github.com/rr/rr/issues) and I'll respond as soon as I can.
|
171
168
|
|
172
169
|
|
173
170
|
## Contributing
|
174
171
|
|
175
172
|
Want to contribute a bug fix or new feature to RR? Great! Follow these steps:
|
176
173
|
|
177
|
-
1. Make sure you have
|
178
|
-
version that RR targets).
|
174
|
+
1. Make sure you have a recent Ruby (check the compatibility table above).
|
179
175
|
2. Clone the repo (you probably knew that already).
|
180
176
|
3. Make a new branch off of `master` with a descriptive name.
|
181
177
|
4. Work on your patch.
|
@@ -205,8 +201,9 @@ To run all the suites, simply say:
|
|
205
201
|
|
206
202
|
## Author/Contact
|
207
203
|
|
208
|
-
RR was originally written by Brian Takita.
|
209
|
-
Winkler (<elliot.winkler@gmail.com>).
|
204
|
+
RR was originally written by Brian Takita. And it was maintained by
|
205
|
+
Elliot Winkler (<elliot.winkler@gmail.com>). It is currently
|
206
|
+
maintained by Kouhei Sutou (<kou@cozmixng.org>).
|
210
207
|
|
211
208
|
|
212
209
|
## Credits
|
data/Rakefile
CHANGED
@@ -4,52 +4,54 @@ require 'rake'
|
|
4
4
|
|
5
5
|
require 'pp'
|
6
6
|
|
7
|
-
# appraisal
|
8
|
-
require 'appraisal'
|
9
|
-
|
10
7
|
# build, install, release
|
11
8
|
require 'bundler/gem_tasks'
|
12
9
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
10
|
+
require_relative "lib/rr/version"
|
11
|
+
|
12
|
+
default_tasks = []
|
13
|
+
|
14
|
+
begin
|
15
|
+
# appraisal
|
16
|
+
require 'appraisal'
|
17
|
+
rescue LoadError
|
18
|
+
else
|
19
|
+
# appraisals
|
20
|
+
Appraisal::File.each do |appraisal|
|
21
|
+
desc "Resolve and install dependencies for the #{appraisal.name} appraisal"
|
22
|
+
task "appraisal:#{appraisal.name}:install" do
|
23
|
+
appraisal.install
|
24
|
+
end
|
18
25
|
end
|
26
|
+
default_tasks << 'appraisal:install'
|
19
27
|
end
|
20
28
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
29
|
+
begin
|
30
|
+
# spec
|
31
|
+
require 'rspec/core/rake_task'
|
32
|
+
rescue LoadError
|
33
|
+
else
|
34
|
+
require File.expand_path('../spec/defines_spec_suite_tasks', __FILE__)
|
35
|
+
DefinesSpecSuiteTasks.call
|
36
|
+
default_tasks << :spec
|
37
|
+
end
|
38
|
+
|
39
|
+
desc "Run tests"
|
40
|
+
task :test do
|
41
|
+
ruby("test/run-test.rb")
|
42
|
+
end
|
43
|
+
default_tasks << :test
|
44
|
+
|
45
|
+
namespace :"gh-pages" do
|
46
|
+
namespace :version do
|
47
|
+
desc "Update version"
|
48
|
+
task :update do
|
49
|
+
config_yml_path = "gh-pages/_config.yml"
|
50
|
+
config_yml = File.read(config_yml_path)
|
51
|
+
config_yml = config_yml.gsub(/^version: .*$/, "version: #{RR::VERSION}")
|
52
|
+
File.write(config_yml_path, config_yml)
|
42
53
|
end
|
43
54
|
end
|
44
|
-
puts "Wrote to #{file_path}."
|
45
|
-
|
46
|
-
remote_file_path = "v#{RR.version}.tar.gz"
|
47
|
-
bucket_name = 'rubygem-rr/tests'
|
48
|
-
puts "Uploading #{file_path} to s3.amazonaws.com/#{bucket_name}/#{remote_file_path} ..."
|
49
|
-
s3 = AWS::S3.new
|
50
|
-
bucket = s3.buckets[bucket_name]
|
51
|
-
object = bucket.objects[remote_file_path]
|
52
|
-
File.open(file_path, 'rb') {|f| object.write(f) }
|
53
|
-
object.acl = :public_read
|
54
55
|
end
|
55
|
-
|
56
|
+
|
57
|
+
task :default => default_tasks
|
data/doc/02_syntax_comparison.md
CHANGED
data/lib/rr/core_ext/array.rb
CHANGED
data/lib/rr/core_ext/hash.rb
CHANGED
@@ -0,0 +1,97 @@
|
|
1
|
+
module RR
|
2
|
+
module Adapters
|
3
|
+
# People who manually include RR into their test framework will use
|
4
|
+
# these constants
|
5
|
+
|
6
|
+
module MiniTest
|
7
|
+
def self.included(base)
|
8
|
+
RR::Deprecations.show_warning_for_deprecated_adapter
|
9
|
+
RR.autohook
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
module TestUnit
|
14
|
+
def self.included(base)
|
15
|
+
RR::Deprecations.show_warning_for_deprecated_adapter
|
16
|
+
RR.autohook
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
module RSpec2
|
21
|
+
def self.included(base)
|
22
|
+
RR::Deprecations.show_warning_for_deprecated_adapter
|
23
|
+
RR.autohook
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
module Rspec
|
28
|
+
def self.const_missing(name)
|
29
|
+
if name == :InvocationMatcher
|
30
|
+
# Old versions of the RSpec-2 adapter for RR floating out in the wild
|
31
|
+
# still refer to this constant
|
32
|
+
RR::Deprecations.constant_deprecated_in_favor_of(
|
33
|
+
'RR::Adapters::Rspec::InvocationMatcher',
|
34
|
+
'RR::Integrations::RSpec::InvocationMatcher'
|
35
|
+
)
|
36
|
+
RR::Integrations::RSpec::InvocationMatcher
|
37
|
+
else
|
38
|
+
super
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
module RRMethods
|
44
|
+
include RR::DSL
|
45
|
+
|
46
|
+
def self.included(base)
|
47
|
+
# This was once here but is now deprecated
|
48
|
+
RR::Deprecations.constant_deprecated_in_favor_of(
|
49
|
+
'RR::Adapters::RRMethods',
|
50
|
+
'RR::DSL'
|
51
|
+
)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
# This is here because RSpec-2's RR adapters uses it
|
57
|
+
module Extensions
|
58
|
+
def self.const_missing(name)
|
59
|
+
if name == :InstanceMethods
|
60
|
+
RR.autohook
|
61
|
+
RR::Integrations::RSpec2::Mixin
|
62
|
+
else
|
63
|
+
super
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
module Deprecations
|
69
|
+
def self.show_warning(msg, options = {})
|
70
|
+
start_backtrace_at_frame = options.fetch(:start_backtrace_at_frame, 2)
|
71
|
+
backtrace = caller(start_backtrace_at_frame)
|
72
|
+
|
73
|
+
lines = []
|
74
|
+
lines << ('-' * 80)
|
75
|
+
lines << 'Warning from RR:'
|
76
|
+
lines.concat msg.split(/\n/).map {|l| " #{l}" }
|
77
|
+
lines << ""
|
78
|
+
lines << "Called from:"
|
79
|
+
lines.concat backtrace[0..2].map {|l| " - #{l}" }
|
80
|
+
lines << ('-' * 80)
|
81
|
+
|
82
|
+
Kernel.warn lines.join("\n")
|
83
|
+
end
|
84
|
+
|
85
|
+
def self.constant_deprecated_in_favor_of(old_name, new_name)
|
86
|
+
show_warning "#{old_name} is deprecated;\nplease use #{new_name} instead.",
|
87
|
+
:start_backtrace_at_frame => 3
|
88
|
+
end
|
89
|
+
|
90
|
+
def self.show_warning_for_deprecated_adapter
|
91
|
+
RR::Deprecations.show_warning(<<EOT.strip)
|
92
|
+
RR now has an autohook system. You don't need to `include RR::Adapters::*` in
|
93
|
+
your test framework's base class anymore.
|
94
|
+
EOT
|
95
|
+
end
|
96
|
+
end
|
97
|
+
end
|