rr 1.1.2.rc1 → 3.0.1
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 +98 -6
- 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 +67 -19
- 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 +28 -8
- 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 +113 -58
- 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: 4e2a905bf3c98b578d3101fc481f77bfc04fe12f66ddbeaaf5c199203400b039
|
|
4
|
+
data.tar.gz: e8f43656c3148894baa0b947838e094ebd2c08bb821ccc325b6a7b43c2e4479d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 36c98f63746b65919ea471b3bf860edc647252e9eeaf1ffee4cc61be124dc82dc145de13fda8d4ff49efba4e7476b1c6a999d059a9ce1e6bc1d8eb1088f31079
|
|
7
|
+
data.tar.gz: 9c7a00c6899824ae9e807c62ccb81efb07a37b7ed78ab368551a24e36c98732539cd111090826995925543aa52c504f8abec2eadbcc9cc81cdfedac98cbb11f4
|
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,21 +1,113 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 3.0.1 - 2021-06-18
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
### Improvements
|
|
6
|
+
|
|
7
|
+
* Suppressed keyword arguments related warnings on Ruby 2.7.
|
|
8
|
+
[GitHub#81][Reported by akira yamada]
|
|
9
|
+
|
|
10
|
+
### Thanks
|
|
11
|
+
|
|
12
|
+
* akira yamada
|
|
13
|
+
|
|
14
|
+
## 3.0.0 - 2021-03-31
|
|
15
|
+
|
|
16
|
+
### Improvements
|
|
17
|
+
|
|
18
|
+
* Added support for Ruby 3.0's keyword arguments.
|
|
19
|
+
[GitHub#17][Reported by Takuro Ashie]
|
|
20
|
+
|
|
21
|
+
### Fixes
|
|
22
|
+
|
|
23
|
+
* Fixed a bug that `any_instance_of` doesn't work with class
|
|
24
|
+
hierarchies. [GitHub#12][Reported by Étienne Barrié]
|
|
25
|
+
|
|
26
|
+
### Thanks
|
|
27
|
+
|
|
28
|
+
* Étienne Barrié
|
|
29
|
+
|
|
30
|
+
* Takuro Ashie
|
|
31
|
+
|
|
32
|
+
## 1.2.1 - 2017-06-22
|
|
33
|
+
|
|
34
|
+
### Fixes
|
|
35
|
+
|
|
36
|
+
* Fixed a bug that `RR.reset` resets newly created methods.
|
|
37
|
+
[GitHub#8]
|
|
38
|
+
|
|
39
|
+
## 1.2.0 - 2016-05-30
|
|
40
|
+
|
|
41
|
+
### Improvements
|
|
42
|
+
|
|
43
|
+
* Renamed RR::Adapters::RRMethods to RR::DSL.
|
|
44
|
+
|
|
45
|
+
* Deprecated RRMethods.
|
|
46
|
+
|
|
47
|
+
* Updated document. [GitHub#57][Patch by Nikolay Shebanov]
|
|
48
|
+
|
|
49
|
+
* Dropped Ruby 1.8 support.
|
|
50
|
+
|
|
51
|
+
* Dropped Ruby 1.9 support.
|
|
52
|
+
|
|
53
|
+
* Dropped Rails 3 support.
|
|
54
|
+
|
|
55
|
+
* Dropped test-unit integration support. Use
|
|
56
|
+
[test-unit-rr](https://test-unit.github.io/#test-unit-rr).
|
|
57
|
+
|
|
58
|
+
* Supported OpenStruct in Ruby 2.3
|
|
59
|
+
[GitHub#64][Reported by soylent][Reported by Arthur Le Maitre]
|
|
60
|
+
|
|
61
|
+
### Fixes
|
|
62
|
+
|
|
63
|
+
* Fixed using RSpec's RR adapter to not override our RSpec adapter.
|
|
64
|
+
If RR is required and then you use `mock_with :rr` you would not be able to
|
|
65
|
+
use `have_received`.
|
|
66
|
+
|
|
67
|
+
* Fixed a bug that `Hash` argument is too wild.
|
|
68
|
+
[GitHub#54][Reported by Yutaka HARA]
|
|
69
|
+
|
|
70
|
+
* Fixed a bug that `Array` argument is too wild.
|
|
71
|
+
[GitHub#54][Reported by Skye Shaw]
|
|
72
|
+
|
|
73
|
+
### Thanks
|
|
74
|
+
|
|
75
|
+
* Nikolay Shebanov
|
|
76
|
+
|
|
77
|
+
* Yutaka HARA
|
|
78
|
+
|
|
79
|
+
* Skye Shaw
|
|
80
|
+
|
|
81
|
+
* soylent
|
|
82
|
+
|
|
83
|
+
* Arthur Le Maitre
|
|
84
|
+
|
|
85
|
+
## 1.1.2 (August 17, 2013)
|
|
86
|
+
|
|
87
|
+
* Add tests, appraisals, etc. back to the published gem ([#32][i32]).
|
|
6
88
|
This is necessary because Debian wraps rr in a package, and they depend on the
|
|
7
89
|
tests to be present in order to run them prior to packaging.
|
|
8
90
|
* Add back RR::Adapters::RSpec2 which was removed accidentally ([#34][i34]).
|
|
9
|
-
This fixes failures when running tests against sham_rack
|
|
91
|
+
This fixes failures when running tests against sham_rack (which is no longer
|
|
92
|
+
using RR, but, oh well).
|
|
10
93
|
* Remove deprecation warning about
|
|
11
94
|
RSpec.configuration.backtrace_clean_patterns under RSpec 2.14 ([#37][i37]).
|
|
12
|
-
|
|
95
|
+
NOTE: This warning will continue to appear if you are configuring RSpec using
|
|
96
|
+
`mock_with :rr`. This is because the RR adapter bundled with RSpec still
|
|
97
|
+
refers to `backtrace_clean_patterns` instead of
|
|
98
|
+
`backtrace_exclusion_patterns`. You can either wait until the next release of
|
|
99
|
+
rspec-core, or remove `mock_with :rr` (which is recommended at this point as
|
|
100
|
+
we consider RSpec's adapter to be slightly out of date, and RR provides its
|
|
101
|
+
own adapter for RSpec).
|
|
102
|
+
* RR now officially supports Rails 4.0.0. (It worked before, but now we're
|
|
103
|
+
explicitly testing against it instead of 4.0.0.rc1.)
|
|
13
104
|
* Fix Test::Unit 1 and 2 adapters to avoid a possible "undefined
|
|
14
105
|
Test::Unit::TestCase" error.
|
|
106
|
+
* Prevent adapters from being double-loaded.
|
|
15
107
|
* Including RR::Adapters::TestUnit, RR::Adapters::MiniTest, or
|
|
16
108
|
RR::Adapters::RSpec2 now just re-runs the autohook mechanism instead of
|
|
17
|
-
building a fake adapter
|
|
18
|
-
|
|
109
|
+
building a fake adapter, as it was possible to include both a real and fake
|
|
110
|
+
adapter in the same space and they could conflict with each other.
|
|
19
111
|
|
|
20
112
|
## 1.1.1 (June 17, 2013)
|
|
21
113
|
|
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