webmock_method 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/.idea/webmock_method.iml +36 -38
- data/CHANGES +5 -1
- data/README.md +39 -6
- data/lib/webmock_method/version.rb +2 -2
- data/lib/webmock_method/webmock_method.rb +3 -3
- data/spec/open_weather_map_service_spec.rb +7 -5
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MmE0MWQxMjRjODAyYzJjZmM2NmY1Zjk3NTA1YzY5ZDVlMmM2YjBkYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
N2IxNTc2ZmQwNzc0OWZmMGQ2NzIyZDgxZTUzNWEzYmVhMTRjZjFmMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MDlhZjg5NDgxYjRlMGZiNWI3MjM1ZTVjZDIwZjJjZjg1NDVlMThjMDU0ZjFj
|
10
|
+
YzM0MmE3N2VmZjk0NTNiYjdlOGM3YWE1YjkwY2Q3NWE0NjFkZTk4NjQ5ZDg3
|
11
|
+
NGYxN2Q0ZWIwNDhlYjVlOTNmODgxMjdlOTlmNzNlOWUxNWNhZTQ=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
YTNhNmVjOTUyMjdmNzBhN2ZlMzFhN2NkYjUyNTBlZTc2N2RhMWYwOTAwNTc1
|
14
|
+
YTg0ZDFkNzBlN2U0MTRlZjUyMTZmODU0NjNmMjQ5YzhlN2MzNzJhMjI2MTM0
|
15
|
+
YzgyYzYwODA0YTQ3N2NjNmM2NzJkMmZlZjQ1NmQyMzU0MjZmNmI=
|
data/.idea/webmock_method.iml
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
</facet>
|
11
11
|
</component>
|
12
12
|
<component name="ModuleRunConfigurationManager">
|
13
|
-
<configuration default="false" name="
|
13
|
+
<configuration default="false" name="MetaMethods: webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
14
14
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
15
15
|
<module name="webmock_method" />
|
16
16
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
@@ -21,7 +21,7 @@
|
|
21
21
|
<envs>
|
22
22
|
<env name="JRUBY_OPTS" value="-X+O" />
|
23
23
|
</envs>
|
24
|
-
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="
|
24
|
+
<EXTENSION ID="BundlerRunConfigurationExtension" bundleExecEnabled="true" />
|
25
25
|
<EXTENSION ID="JRubyRunConfigurationExtension" NailgunExecEnabled="false" />
|
26
26
|
<EXTENSION ID="RubyCoverageRunConfigurationExtension" enabled="false" sample_coverage="true" track_test_folders="true" runner="rcov">
|
27
27
|
<COVERAGE_PATTERN ENABLED="true">
|
@@ -30,10 +30,10 @@
|
|
30
30
|
</EXTENSION>
|
31
31
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
32
32
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
33
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
33
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/meta_methods_spec.rb" />
|
34
34
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
35
35
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
36
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
36
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="MetaMethods" />
|
37
37
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
38
38
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
39
39
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
@@ -42,13 +42,11 @@
|
|
42
42
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="ZEUS" VALUE="false" />
|
43
43
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPRING" VALUE="false" />
|
44
44
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="FULL_BACKTRACE" VALUE="false" />
|
45
|
-
<RunnerSettings RunnerId="RubyDebugRunner" />
|
46
45
|
<RunnerSettings RunnerId="RubyRunner" />
|
47
|
-
<ConfigurationWrapper RunnerId="RubyDebugRunner" />
|
48
46
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
49
47
|
<method />
|
50
48
|
</configuration>
|
51
|
-
<configuration default="false" name="
|
49
|
+
<configuration default="false" name="OpenWeatherMapService#quote gets the quote: webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
52
50
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
53
51
|
<module name="webmock_method" />
|
54
52
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
@@ -68,10 +66,10 @@
|
|
68
66
|
</EXTENSION>
|
69
67
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
70
68
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
71
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
69
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/open_weather_map_service_spec.rb" />
|
72
70
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
73
71
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
74
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="
|
72
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="OpenWeatherMapService#quote gets the quote" />
|
75
73
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
76
74
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
77
75
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
@@ -84,7 +82,7 @@
|
|
84
82
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
85
83
|
<method />
|
86
84
|
</configuration>
|
87
|
-
<configuration default="false" name="Run spec '
|
85
|
+
<configuration default="false" name="Run spec 'open_weather_map_service_spec': webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
88
86
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
89
87
|
<module name="webmock_method" />
|
90
88
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
@@ -104,7 +102,7 @@
|
|
104
102
|
</EXTENSION>
|
105
103
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
106
104
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
107
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
105
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/open_weather_map_service_spec.rb" />
|
108
106
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
109
107
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
110
108
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
@@ -120,7 +118,7 @@
|
|
120
118
|
<ConfigurationWrapper RunnerId="RubyRunner" />
|
121
119
|
<method />
|
122
120
|
</configuration>
|
123
|
-
<configuration default="false" name="
|
121
|
+
<configuration default="false" name="Run spec 'payment_gateway_spec': webmock_method" type="RSpecRunConfigurationType" factoryName="RSpec" temporary="true">
|
124
122
|
<predefined_log_file id="RUBY_RSPEC" enabled="true" />
|
125
123
|
<module name="webmock_method" />
|
126
124
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUBY_ARGS" VALUE="-e $stdout.sync=true;$stderr.sync=true;load($0=ARGV.shift)" />
|
@@ -140,10 +138,10 @@
|
|
140
138
|
</EXTENSION>
|
141
139
|
<EXTENSION ID="org.jetbrains.plugins.ruby.motion.run.MotionSimulatorRunExtension" />
|
142
140
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TESTS_FOLDER_PATH" VALUE="" />
|
143
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/
|
141
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_SCRIPT_PATH" VALUE="$MODULE_DIR$/spec/payment_gateway_spec.rb" />
|
144
142
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_RUNNER_PATH" VALUE="" />
|
145
143
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_FILE_MASK" VALUE="**/*_spec.rb" />
|
146
|
-
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="
|
144
|
+
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_EXAMPLE_NAME" VALUE="" />
|
147
145
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="TEST_TEST_TYPE" VALUE="TEST_SCRIPT" />
|
148
146
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="SPEC_ARGS" VALUE="" />
|
149
147
|
<RSPEC_RUN_CONFIG_SETTINGS_ID NAME="RUNNER_VERSION" VALUE="" />
|
@@ -184,29 +182,29 @@
|
|
184
182
|
<component name="NewModuleRootManager">
|
185
183
|
<content url="file://$MODULE_DIR$/../docs" />
|
186
184
|
<content url="file://$MODULE_DIR$" />
|
187
|
-
<orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-
|
185
|
+
<orderEntry type="jdk" jdkName="RVM: ruby-1.9.3-p550 [webmock_method]" jdkType="RUBY_SDK" />
|
188
186
|
<orderEntry type="sourceFolder" forTests="false" />
|
189
|
-
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.3.
|
190
|
-
<orderEntry type="library" scope="PROVIDED" name="awesome_print (v1.2.0, RVM: ruby-1.9.3-
|
191
|
-
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.
|
192
|
-
<orderEntry type="library" scope="PROVIDED" name="crack (v0.4.2, RVM: ruby-1.9.3-
|
193
|
-
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.5, RVM: ruby-1.9.3-
|
194
|
-
<orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.7, RVM: ruby-1.9.3-
|
195
|
-
<orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-
|
196
|
-
<orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.1.2, RVM: ruby-1.9.3-
|
197
|
-
<orderEntry type="library" scope="PROVIDED" name="haml (v4.0.5, RVM: ruby-1.9.3-
|
198
|
-
<orderEntry type="library" scope="PROVIDED" name="json_pure (v1.8.1, RVM: ruby-1.9.3-
|
199
|
-
<orderEntry type="library" scope="PROVIDED" name="meta_methods (v1.
|
200
|
-
<orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.4, RVM: ruby-1.9.3-
|
201
|
-
<orderEntry type="library" scope="PROVIDED" name="mocha (v1.
|
202
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec (
|
203
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-core (
|
204
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (
|
205
|
-
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (
|
206
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
207
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
208
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
209
|
-
<orderEntry type="library" scope="PROVIDED" name="
|
187
|
+
<orderEntry type="library" scope="PROVIDED" name="addressable (v2.3.6, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
188
|
+
<orderEntry type="library" scope="PROVIDED" name="awesome_print (v1.2.0, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
189
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.7.4, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
190
|
+
<orderEntry type="library" scope="PROVIDED" name="crack (v0.4.2, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
191
|
+
<orderEntry type="library" scope="PROVIDED" name="diff-lcs (v1.2.5, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
192
|
+
<orderEntry type="library" scope="PROVIDED" name="file_utils (v1.0.7, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
193
|
+
<orderEntry type="library" scope="PROVIDED" name="gemcutter (v0.7.1, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
194
|
+
<orderEntry type="library" scope="PROVIDED" name="gemspec_deps_gen (v1.1.2, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
195
|
+
<orderEntry type="library" scope="PROVIDED" name="haml (v4.0.5, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
196
|
+
<orderEntry type="library" scope="PROVIDED" name="json_pure (v1.8.1, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
197
|
+
<orderEntry type="library" scope="PROVIDED" name="meta_methods (v1.3.0, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
198
|
+
<orderEntry type="library" scope="PROVIDED" name="metaclass (v0.0.4, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
199
|
+
<orderEntry type="library" scope="PROVIDED" name="mocha (v1.1.0, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
200
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec (v3.1.0, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
201
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-core (v3.1.7, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
202
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-expectations (v3.1.2, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
203
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-mocks (v3.1.3, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
204
|
+
<orderEntry type="library" scope="PROVIDED" name="rspec-support (v3.1.2, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
205
|
+
<orderEntry type="library" scope="PROVIDED" name="safe_yaml (v1.0.4, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
206
|
+
<orderEntry type="library" scope="PROVIDED" name="tilt (v2.0.1, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
207
|
+
<orderEntry type="library" scope="PROVIDED" name="webmock (v1.20.4, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
208
|
+
<orderEntry type="library" scope="PROVIDED" name="xml-simple (v1.1.4, RVM: ruby-1.9.3-p550 [webmock_method]) [gem]" level="application" />
|
210
209
|
</component>
|
211
|
-
</module>
|
212
|
-
|
210
|
+
</module>
|
data/CHANGES
CHANGED
data/README.md
CHANGED
@@ -73,14 +73,14 @@ Then, create stub/mock for your service:
|
|
73
73
|
# stubs/open_weather_map_service.rb
|
74
74
|
|
75
75
|
require 'webmock_method'
|
76
|
-
require 'json'
|
77
76
|
|
78
77
|
require 'services/open_weather_map_service.rb'
|
79
78
|
|
80
79
|
class OpenWeatherMapService
|
81
80
|
extend WebmockMethod
|
82
81
|
|
83
|
-
webmock_method :quote, [:location, :units],
|
82
|
+
webmock_method :quote, [:location, :units],
|
83
|
+
lambda { |_|
|
84
84
|
File.open "#{File.dirname(__FILE__)}/stubs/templates/quote_response.json.erb"
|
85
85
|
}, /#{WebmockMethod.url}/
|
86
86
|
end
|
@@ -94,10 +94,11 @@ end
|
|
94
94
|
* **url** to remote service (optional).
|
95
95
|
|
96
96
|
You can build responses of arbitrary complexity with your own code or you can use **RenderHelper**, that comes with this
|
97
|
-
gem. Currently it supports **erb**
|
97
|
+
gem. Currently it supports **erb** and **haml** renderers only. Here is example of how to build xml response:
|
98
98
|
|
99
99
|
```ruby
|
100
|
-
webmock_method :purchase, [:amount, :credit_card],
|
100
|
+
webmock_method :purchase, [:amount, :credit_card],
|
101
|
+
lambda { |binding|
|
101
102
|
RenderHelper.render :erb, "#{File.dirname(__FILE__)}/templates/purchase_response.xml.erb", binding
|
102
103
|
}
|
103
104
|
```
|
@@ -105,8 +106,9 @@ gem. Currently it supports **erb** renderer only. Here is example of how to buil
|
|
105
106
|
It's possible to tweak your response on the fly:
|
106
107
|
|
107
108
|
```ruby
|
108
|
-
webmock_method :purchase, [:amount, :credit_card],
|
109
|
-
|
109
|
+
webmock_method :purchase, [:amount, :credit_card],
|
110
|
+
lambda { |binding|
|
111
|
+
RenderHelper.render :erb, "#{File.dirname(__FILE__)}/templates/purchase_response.xml.erb", binding
|
110
112
|
} do |parent, _, credit_card|
|
111
113
|
if credit_card.card_type == "VISA"
|
112
114
|
define_attribute(parent, :success, true)
|
@@ -140,6 +142,8 @@ WebmockMethod.url = "http://api.openweathermap.org/data/2.5/weather"
|
|
140
142
|
And finally, create spec for testing your mocked service:
|
141
143
|
|
142
144
|
```ruby
|
145
|
+
require 'json'
|
146
|
+
|
143
147
|
require "stubs/open_weather_map_service"
|
144
148
|
|
145
149
|
describe OpenWeatherMapService do
|
@@ -153,6 +157,35 @@ describe OpenWeatherMapService do
|
|
153
157
|
end
|
154
158
|
```
|
155
159
|
|
160
|
+
If you need to simulate exception raised inside the mocked method, do the following:
|
161
|
+
|
162
|
+
```ruby
|
163
|
+
webmock_method :purchase, [:amount, :credit_card],
|
164
|
+
lambda { |binding|
|
165
|
+
# prepare response
|
166
|
+
...
|
167
|
+
} do |parent, amount, credit_card|
|
168
|
+
define_attribute(parent, :error, create_error(parent, "Negative amount")) if amount < 0
|
169
|
+
|
170
|
+
...
|
171
|
+
end
|
172
|
+
|
173
|
+
def self.create_error parent, reason
|
174
|
+
define_attribute(parent, :error, Exception.new(reason))
|
175
|
+
end
|
176
|
+
|
177
|
+
end
|
178
|
+
```
|
179
|
+
|
180
|
+
**webmock** gem code is aware of **error** variable and will throw this exception, so yo can verify it inside
|
181
|
+
your test:
|
182
|
+
|
183
|
+
```ruby
|
184
|
+
it "returns error response if amount is negative" do
|
185
|
+
expect{subject.purchase(-1000, valid_credit_card)}.to raise_exception(Exception)
|
186
|
+
end
|
187
|
+
```
|
188
|
+
|
156
189
|
## Contributing
|
157
190
|
|
158
191
|
1. Fork it
|
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = "1.2.
|
1
|
+
class WebmockMethod
|
2
|
+
VERSION = "1.2.2"
|
3
3
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
require 'webmock'
|
2
|
-
require 'meta_methods'
|
2
|
+
require 'meta_methods/core'
|
3
3
|
|
4
4
|
module WebmockMethod
|
5
|
-
include MetaMethods::Core
|
5
|
+
# include MetaMethods::Core
|
6
6
|
|
7
7
|
extend self
|
8
8
|
|
@@ -15,7 +15,7 @@ module WebmockMethod
|
|
15
15
|
|
16
16
|
define_method("#{method_name}_with_webmock_method") do |*args|
|
17
17
|
param_names.each_with_index do |param_name, index|
|
18
|
-
|
18
|
+
MetaMethods::Core.instance.define_attribute(self, param_name, args[index])
|
19
19
|
end
|
20
20
|
|
21
21
|
yield(self, *args) if block_given?
|
@@ -21,20 +21,22 @@ end
|
|
21
21
|
# 2. Create service mock
|
22
22
|
|
23
23
|
require 'webmock_method'
|
24
|
-
require 'json'
|
25
24
|
|
26
25
|
class OpenWeatherMapService
|
27
26
|
extend WebmockMethod
|
28
27
|
|
29
|
-
webmock_method :quote, [:location, :units],
|
30
|
-
|
31
|
-
|
28
|
+
webmock_method :quote, [:location, :units],
|
29
|
+
lambda { |_|
|
30
|
+
File.open "#{File.dirname(__FILE__)}/stubs/templates/quote_response.json.erb"
|
31
|
+
}, /#{WebmockMethod.url}/
|
32
32
|
end
|
33
33
|
|
34
34
|
# 3. Test service mock
|
35
35
|
|
36
36
|
# Make sure we don't hit external service: when stub is commented, test should fail
|
37
|
-
WebMock.disable_net_connect!(allow_localhost: true)
|
37
|
+
# WebMock.disable_net_connect!(allow_localhost: true)
|
38
|
+
|
39
|
+
require 'json'
|
38
40
|
|
39
41
|
describe OpenWeatherMapService do
|
40
42
|
describe "#quote" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: webmock_method
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alexander Shvets
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: webmock
|
@@ -138,7 +138,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
138
138
|
version: '0'
|
139
139
|
requirements: []
|
140
140
|
rubyforge_project:
|
141
|
-
rubygems_version: 2.
|
141
|
+
rubygems_version: 2.4.2
|
142
142
|
signing_key:
|
143
143
|
specification_version: 4
|
144
144
|
summary: Extension for webmock to make stubbed methods.
|