rr 1.2.0 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2135e46b66d09100c220437bb40f2989ccff6afc
4
- data.tar.gz: 6307d6b090c14938825eaa4c5c474ba97788c770
3
+ metadata.gz: 35d55fd0d14916ec412865fa0093c5c3ecf6af07
4
+ data.tar.gz: e5dd7d9dbddb7c2dfe272de8a0fb9e3c18ffbf9b
5
5
  SHA512:
6
- metadata.gz: ba91e27957d4ba1876e17f0a21480265b088234e3b5ad05638d33e2591bb8fe1df1373849c89c420d0a47f61a3f1091a117326ec91acd94c51de16b82e5b2fd3
7
- data.tar.gz: d63946c4a0a43c25484d11b430831e306535e83600fc026834a02cc535417fa9b9ac2d5fb46ae61ed2b093e5930417c3f04d818b275bcc432f403d9d55271691
6
+ metadata.gz: 3013497ba6d79be17044b1da4efa0806f8c608840d46603fc05ec255aebdc701946cd097d9032a017f88ff2e672c5a065d0a4a4a14431bb5d0b0c6c431a3c9d3
7
+ data.tar.gz: 066dc64081fc2b385185e25bd4f56612b90f14c9788ab8ca78fb17b5593542fb601b33108703ce637770d28c2a90a4dd00edac809447b59f09755e7bbe73588f
@@ -206,7 +206,8 @@ module RR
206
206
 
207
207
  protected
208
208
  def deferred_bind_method
209
- unless subject_has_method_defined?(original_method_alias_name)
209
+ if respond_to?(method_name) and
210
+ not subject_has_method_defined?(original_method_alias_name)
210
211
  bind_method_with_alias
211
212
  end
212
213
  @performed_deferred_bind = true
@@ -1,4 +1,4 @@
1
1
  module RR
2
- VERSION = '1.2.0'.freeze
2
+ VERSION = '1.2.1'.freeze
3
3
  def self.version; VERSION; end
4
4
  end
@@ -231,12 +231,6 @@ module RR
231
231
  end
232
232
 
233
233
  describe "being called" do
234
- it "defines __rr__original_{method_name} to be the lazily created method" do
235
- subject.foobar
236
- expect((!!subject.methods.detect {|method| method.to_sym == :__rr__original_foobar})).to be_true
237
- expect(subject.__rr__original_foobar).to eq :original_foobar
238
- end
239
-
240
234
  it "calls the lazily created method and returns the injected method return value" do
241
235
  original_return_value = nil
242
236
  stub.proxy(subject).foobar {|arg| original_return_value = arg; :new_foobar}
@@ -383,12 +377,6 @@ module RR
383
377
  end
384
378
 
385
379
  describe "being called" do
386
- it "defines __rr__original_{method_name} to be the lazily created method" do
387
- subject.foobar
388
- expect((!!subject.methods.detect {|method| method.to_sym == :__rr__original_foobar})).to be_true
389
- expect(subject.__rr__original_foobar).to eq :original_foobar
390
- end
391
-
392
380
  it "calls the lazily created method and returns the injected method return value" do
393
381
  original_return_value = nil
394
382
  stub.proxy(subject).foobar {|arg| original_return_value = arg; :new_foobar}
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2016-05-29 00:00:00.000000000 Z
13
+ date: 2017-07-22 00:00:00.000000000 Z
14
14
  dependencies: []
15
15
  description: RR is a test double framework that features a rich selection of double
16
16
  techniques and a terse syntax.
@@ -154,7 +154,6 @@ files:
154
154
  - spec/suites/rspec_2/helper.rb
155
155
  - spec/suites/rspec_2/integration/minitest_4_spec.rb
156
156
  - spec/suites/rspec_2/integration/minitest_spec.rb
157
- - spec/suites/rspec_2/integration/rspec_2_spec.rb
158
157
  - spec/suites/rspec_2/spec_helper.rb
159
158
  - spec/suites/rspec_2/support/matchers/wildcard_matcher_matchers.rb
160
159
  - spec/suites/rspec_2/support/mixins/double_definition_creator_helpers.rb
@@ -235,7 +234,6 @@ files:
235
234
  - spec/suites/rspec_2/unit/wildcard_matchers/satisfy_spec.rb
236
235
  - spec/suites/rspec_2_rails_4/integration/astc_rails_4_spec.rb
237
236
  - spec/suites/rspec_2_rails_4/integration/minitest_4_rails_4_spec.rb
238
- - spec/suites/rspec_2_rails_4/integration/rspec_2_rails_4_spec.rb
239
237
  - spec/suites/rspec_2_rails_4/spec_helper.rb
240
238
  - spec/support/adapter.rb
241
239
  - spec/support/adapter_tests/base.rb
@@ -313,10 +311,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
313
311
  version: '0'
314
312
  requirements: []
315
313
  rubyforge_project:
316
- rubygems_version: 2.5.1
314
+ rubygems_version: 2.5.2
317
315
  signing_key:
318
316
  specification_version: 4
319
317
  summary: RR is a test double framework that features a rich selection of double techniques
320
318
  and a terse syntax.
321
319
  test_files: []
322
- has_rdoc:
@@ -1,133 +0,0 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe 'Integration with RSpec 2' 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 = 2
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
- RSpec.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
- [:RSpec2]
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
- [:RSpec2]
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
-
93
- specify "it is still possible to use a custom RSpec-2 adapter" do
94
- project = generate_project do |project|
95
- project.add_to_prelude <<-EOT
96
- module RR
97
- module Adapters
98
- module RSpec2
99
- include RRMethods
100
-
101
- def setup_mocks_for_rspec
102
- RR.reset
103
- end
104
-
105
- def verify_mocks_for_rspec
106
- RR.verify
107
- end
108
-
109
- def teardown_mocks_for_rspec
110
- RR.reset
111
- end
112
-
113
- def have_received(method = nil)
114
- RR::Adapters::Rspec::InvocationMatcher.new(method)
115
- end
116
- end
117
- end
118
- end
119
-
120
- RSpec.configure do |c|
121
- c.mock_with RR::Adapters::RSpec2
122
- end
123
- EOT
124
- end
125
- project.add_test_file do |file|
126
- file.add_test_case_with_adapter_tests
127
- end
128
- result = project.run_tests
129
- result.should be_success
130
- result.should_not have_errors_or_failures
131
- end
132
- end
133
- end
@@ -1,173 +0,0 @@
1
- require File.expand_path('../../spec_helper', __FILE__)
2
-
3
- describe 'Integration with RSpec 2 and Rails 4' do
4
- include IntegrationTests::RailsRSpec
5
-
6
- def configure_rails_project_generator(project_generator)
7
- super
8
- project_generator.configure do |project|
9
- project.rails_version = 4
10
- end
11
- end
12
-
13
- def configure_project_generator(project_generator)
14
- super
15
- project_generator.configure do |project|
16
- project.rspec_version = 2
17
- end
18
- end
19
-
20
- def self.including_the_adapter_manually_works
21
- specify "including the adapter manually works" do
22
- project = generate_project do |project|
23
- project.add_to_prelude <<-EOT
24
- RSpec.configure do |c|
25
- c.mock_with :rr
26
- end
27
- EOT
28
- end
29
- project.add_test_file do |file|
30
- file.add_working_test_case_with_adapter_tests do |test_case|
31
- test_case.add_to_body <<-EOT
32
- it 'loads the correct adapters' do
33
- assert_adapters_loaded #{adapters_that_should_be_loaded.inspect}
34
- end
35
- EOT
36
- end
37
- end
38
- result = project.run_tests
39
- result.should be_success
40
- result.should_not have_errors_or_failures
41
- end
42
- end
43
-
44
- def self.rr_hooks_into_the_test_framework_automatically
45
- specify "RR hooks into the test framework automatically" do
46
- project = generate_project
47
- project.add_test_file do |file|
48
- file.add_working_test_case
49
- end
50
- result = project.run_tests
51
- result.should be_success
52
- result.should_not have_errors_or_failures
53
- end
54
- end
55
-
56
- def self.using_rr_with_cucumber_works
57
- specify "using RR with Cucumber works" do
58
- pending "Cucumber doesn't work with Rails 4 just yet"
59
- project_generator = build_rails_project_generator do |project_generator|
60
- project_generator.mixin Project::Cucumber
61
- end
62
- project = project_generator.call
63
- result = project.run_command_within("bundle exec cucumber")
64
- result.should be_success
65
- end
66
- end
67
-
68
- context 'when Bundler is autorequiring RR' do
69
- def configure_project_generator(project_generator)
70
- super
71
- project_generator.configure do |project|
72
- project.autorequire_gems = true
73
- end
74
- end
75
-
76
- def adapters_that_should_be_loaded
77
- [:RSpec2]
78
- end
79
-
80
- including_the_adapter_manually_works
81
- using_rr_with_cucumber_works
82
- end
83
-
84
- context 'when RR is being required manually' do
85
- def configure_project_generator(project_generator)
86
- super
87
- project_generator.configure do |project|
88
- project.autorequire_gems = false
89
- end
90
- end
91
-
92
- def adapters_that_should_be_loaded
93
- [:RSpec2]
94
- end
95
-
96
- rr_hooks_into_the_test_framework_automatically
97
- including_the_adapter_manually_works
98
- using_rr_with_cucumber_works
99
-
100
- specify "when RR raises an error it raises a failure not an exception" do
101
- project = generate_project
102
- project.add_test_file do |file|
103
- file.add_test_case do |test_case|
104
- test_case.add_test <<-EOT
105
- object = Object.new
106
- mock(object).foo
107
- EOT
108
- end
109
- end
110
- result = project.run_tests
111
- result.should fail_with_output(/1 failure/)
112
- end
113
-
114
- specify "the database is properly rolled back after an RR error" do
115
- project = generate_project do |project|
116
- project.add_model_and_migration(:person, :people, :name => :string)
117
- end
118
- project.add_test_file do |file|
119
- file.add_test_case do |test_case|
120
- test_case.add_test <<-EOT
121
- Person.create!(:name => 'Joe Blow')
122
- object = Object.new
123
- mock(object).foo
124
- EOT
125
- end
126
- end
127
- expect {
128
- result = project.run_tests
129
- result.should have_errors_or_failures
130
- }.to leave_database_table_clear(project, :people)
131
- end
132
-
133
- specify "it is still possible to use a custom RSpec-2 adapter" do
134
- project = generate_project do |project|
135
- project.add_to_prelude <<-EOT
136
- module RR
137
- module Adapters
138
- module RSpec2
139
- include RRMethods
140
-
141
- def setup_mocks_for_rspec
142
- RR.reset
143
- end
144
-
145
- def verify_mocks_for_rspec
146
- RR.verify
147
- end
148
-
149
- def teardown_mocks_for_rspec
150
- RR.reset
151
- end
152
-
153
- def have_received(method = nil)
154
- RR::Adapters::Rspec::InvocationMatcher.new(method)
155
- end
156
- end
157
- end
158
- end
159
-
160
- RSpec.configure do |c|
161
- c.mock_with RR::Adapters::RSpec2
162
- end
163
- EOT
164
- end
165
- project.add_test_file do |file|
166
- file.add_test_case_with_adapter_tests
167
- end
168
- result = project.run_tests
169
- result.should be_success
170
- result.should_not have_errors_or_failures
171
- end
172
- end
173
- end