statsd-instrument 2.6.0 → 2.7.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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +79 -9
  3. data/benchmark/datagram-client +0 -1
  4. data/benchmark/send-metrics-to-dev-null-log +0 -1
  5. data/lib/statsd/instrument.rb +66 -292
  6. data/lib/statsd/instrument/assertions.rb +83 -93
  7. data/lib/statsd/instrument/client.rb +2 -2
  8. data/lib/statsd/instrument/datagram.rb +12 -3
  9. data/lib/statsd/instrument/environment.rb +9 -3
  10. data/lib/statsd/instrument/expectation.rb +93 -0
  11. data/lib/statsd/instrument/helpers.rb +29 -11
  12. data/lib/statsd/instrument/legacy_client.rb +301 -0
  13. data/lib/statsd/instrument/metric.rb +8 -8
  14. data/lib/statsd/instrument/rubocop.rb +18 -0
  15. data/lib/statsd/instrument/rubocop/singleton_configuration.rb +53 -0
  16. data/lib/statsd/instrument/version.rb +1 -1
  17. data/test/assertions_on_legacy_client_test.rb +376 -0
  18. data/test/assertions_test.rb +105 -39
  19. data/test/capture_sink_test.rb +0 -2
  20. data/test/client_test.rb +0 -2
  21. data/test/compatibility/dogstatsd_datagram_compatibility_test.rb +0 -1
  22. data/test/datagram_builder_test.rb +1 -3
  23. data/test/datagram_test.rb +14 -0
  24. data/test/dogstatsd_datagram_builder_test.rb +0 -2
  25. data/test/environment_test.rb +1 -1
  26. data/test/helpers_test.rb +17 -0
  27. data/test/log_sink_test.rb +0 -2
  28. data/test/logger_backend_test.rb +2 -2
  29. data/test/metric_test.rb +2 -2
  30. data/test/null_sink_test.rb +0 -2
  31. data/test/rubocop/singleton_configuration_test.rb +43 -0
  32. data/test/statsd_datagram_builder_test.rb +0 -2
  33. data/test/statsd_instrumentation_test.rb +4 -6
  34. data/test/statsd_test.rb +1 -1
  35. data/test/test_helper.rb +0 -2
  36. data/test/udp_backend_test.rb +1 -1
  37. data/test/udp_sink_test.rb +0 -2
  38. metadata +11 -3
  39. data/lib/statsd/instrument/metric_expectation.rb +0 -82
@@ -4,11 +4,19 @@ require 'test_helper'
4
4
 
5
5
  class AssertionsTest < Minitest::Test
6
6
  def setup
7
+ @old_client = StatsD.singleton_client
8
+ env = StatsD::Instrument::Environment.new('STATSD_IMPLEMENTATION' => 'datadog')
9
+ StatsD.singleton_client = env.default_client
10
+
7
11
  test_class = Class.new(Minitest::Test)
8
12
  test_class.send(:include, StatsD::Instrument::Assertions)
9
13
  @test_case = test_class.new('fake')
10
14
  end
11
15
 
16
+ def teardown
17
+ StatsD.singleton_client = @old_client
18
+ end
19
+
12
20
  def test_assert_no_statsd_calls
13
21
  @test_case.assert_no_statsd_calls('counter') do
14
22
  # noop
@@ -41,7 +49,7 @@ class AssertionsTest < Minitest::Test
41
49
  assert_equal assertion.message, "No StatsD calls for metric other, another expected."
42
50
  end
43
51
 
44
- def test_assert_statsd_call
52
+ def test_assert_statsd
45
53
  @test_case.assert_statsd_increment('counter') do
46
54
  StatsD.increment('counter')
47
55
  end
@@ -130,6 +138,46 @@ class AssertionsTest < Minitest::Test
130
138
  end
131
139
  end
132
140
 
141
+ def test_assert_statsd_gauge_call_with_numeric_value
142
+ @test_case.assert_statsd_gauge('gauge', value: 42) do
143
+ StatsD.gauge('gauge', 42)
144
+ end
145
+
146
+ @test_case.assert_statsd_gauge('gauge', value: '42') do
147
+ StatsD.gauge('gauge', 42)
148
+ end
149
+
150
+ assert_raises(Minitest::Assertion) do
151
+ @test_case.assert_statsd_gauge('gauge', value: 42) do
152
+ StatsD.gauge('gauge', 45)
153
+ end
154
+ end
155
+ end
156
+
157
+ def test_assert_statsd_set_call_with_string_value
158
+ @test_case.assert_statsd_set('set', value: 12345) do
159
+ StatsD.set('set', '12345')
160
+ end
161
+
162
+ @test_case.assert_statsd_set('set', value: '12345') do
163
+ StatsD.set('set', '12345')
164
+ end
165
+
166
+ @test_case.assert_statsd_set('set', value: 12345) do
167
+ StatsD.set('set', 12345)
168
+ end
169
+
170
+ @test_case.assert_statsd_set('set', value: '12345') do
171
+ StatsD.set('set', 12345)
172
+ end
173
+
174
+ assert_raises(Minitest::Assertion) do
175
+ @test_case.assert_statsd_set('set', value: '42') do
176
+ StatsD.set('set', 45)
177
+ end
178
+ end
179
+ end
180
+
133
181
  def test_tags_will_match_subsets
134
182
  @test_case.assert_statsd_increment('counter', sample_rate: 0.5, tags: { a: 1 }) do
135
183
  StatsD.increment('counter', sample_rate: 0.5, tags: { a: 1, b: 2 })
@@ -153,60 +201,89 @@ class AssertionsTest < Minitest::Test
153
201
  assert_includes assertion.message, "MyJob"
154
202
  end
155
203
 
156
- def test_multiple_metrics_are_not_order_dependent
157
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:1'])
158
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
159
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
204
+ def test_capture_and_assert
205
+ datagrams = @test_case.capture_statsd_datagrams do
206
+ StatsD.increment('counter', tags: { foo: 1 })
207
+ StatsD.increment('counter', tags: { foo: 2 })
208
+ end
209
+
210
+ @test_case.assert_statsd_increment('counter', tags: ['foo:1'], datagrams: datagrams)
211
+ @test_case.assert_statsd_increment('counter', tags: ['foo:2'], datagrams: datagrams)
212
+ end
213
+
214
+ def test_capture_from_different_client
215
+ client = StatsD::Instrument::Client.new
216
+ @test_case.assert_statsd_increment('foo', client: client) do
217
+ client.increment('foo')
218
+ end
219
+
220
+ assert_raises(Minitest::Assertion) do
221
+ @test_case.assert_statsd_increment('foo', client: client) do
222
+ StatsD.increment('foo')
223
+ end
224
+ end
225
+
226
+ assert_raises(Minitest::Assertion) do
227
+ @test_case.assert_statsd_increment('foo') do
228
+ client.increment('foo')
229
+ end
230
+ end
231
+ end
232
+
233
+ def test_multiple_expectations_are_not_order_dependent
234
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:1'])
235
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
236
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
160
237
  StatsD.increment('counter', tags: { foo: 1 })
161
238
  StatsD.increment('counter', tags: { foo: 2 })
162
239
  end
163
240
 
164
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:1'])
165
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
166
- @test_case.assert_statsd_calls([foo_2_metric, foo_1_metric]) do
241
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:1'])
242
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
243
+ @test_case.assert_statsd_expectations([foo_2_metric, foo_1_metric]) do
167
244
  StatsD.increment('counter', tags: { foo: 1 })
168
245
  StatsD.increment('counter', tags: { foo: 2 })
169
246
  end
170
247
 
171
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
172
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
173
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
248
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
249
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
250
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
174
251
  StatsD.increment('counter', tags: { foo: 1 })
175
252
  StatsD.increment('counter', tags: { foo: 1 })
176
253
  StatsD.increment('counter', tags: { foo: 2 })
177
254
  end
178
255
 
179
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
180
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
181
- @test_case.assert_statsd_calls([foo_2_metric, foo_1_metric]) do
256
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
257
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
258
+ @test_case.assert_statsd_expectations([foo_2_metric, foo_1_metric]) do
182
259
  StatsD.increment('counter', tags: { foo: 1 })
183
260
  StatsD.increment('counter', tags: { foo: 1 })
184
261
  StatsD.increment('counter', tags: { foo: 2 })
185
262
  end
186
263
 
187
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
188
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
189
- @test_case.assert_statsd_calls([foo_2_metric, foo_1_metric]) do
264
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
265
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
266
+ @test_case.assert_statsd_expectations([foo_2_metric, foo_1_metric]) do
190
267
  StatsD.increment('counter', tags: { foo: 1 })
191
268
  StatsD.increment('counter', tags: { foo: 2 })
192
269
  StatsD.increment('counter', tags: { foo: 1 })
193
270
  end
194
271
  end
195
272
 
196
- def test_assert_multiple_statsd_calls
273
+ def test_assert_multiple_statsd_expectations
197
274
  assert_raises(Minitest::Assertion) do
198
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
199
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
200
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
275
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
276
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
277
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
201
278
  StatsD.increment('counter', tags: { foo: 1 })
202
279
  StatsD.increment('counter', tags: { foo: 2 })
203
280
  end
204
281
  end
205
282
 
206
283
  assert_raises(Minitest::Assertion) do
207
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
208
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
209
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
284
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
285
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
286
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
210
287
  StatsD.increment('counter', tags: { foo: 1 })
211
288
  StatsD.increment('counter', tags: { foo: 1 })
212
289
  StatsD.increment('counter', tags: { foo: 2 })
@@ -214,16 +291,16 @@ class AssertionsTest < Minitest::Test
214
291
  end
215
292
  end
216
293
 
217
- foo_1_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 2, tags: ['foo:1'])
218
- foo_2_metric = StatsD::Instrument::MetricExpectation.new(type: :c, name: 'counter', times: 1, tags: ['foo:2'])
219
- @test_case.assert_statsd_calls([foo_1_metric, foo_2_metric]) do
294
+ foo_1_metric = StatsD::Instrument::Expectation.increment('counter', times: 2, tags: ['foo:1'])
295
+ foo_2_metric = StatsD::Instrument::Expectation.increment('counter', tags: ['foo:2'])
296
+ @test_case.assert_statsd_expectations([foo_1_metric, foo_2_metric]) do
220
297
  StatsD.increment('counter', tags: { foo: 1 })
221
298
  StatsD.increment('counter', tags: { foo: 1 })
222
299
  StatsD.increment('counter', tags: { foo: 2 })
223
300
  end
224
301
  end
225
302
 
226
- def test_assert_statsd_call_with_tags
303
+ def test_assert_statsd_increment_with_tags
227
304
  @test_case.assert_statsd_increment('counter', tags: ['a:b', 'c:d']) do
228
305
  StatsD.increment('counter', tags: { a: 'b', c: 'd' })
229
306
  end
@@ -233,17 +310,6 @@ class AssertionsTest < Minitest::Test
233
310
  end
234
311
  end
235
312
 
236
- def test_assert_statsd_call_with_wrong_sample_rate_type
237
- skip("In Strict mode, the StatsD.increment call will raise") if StatsD::Instrument.strict_mode_enabled?
238
-
239
- assertion = assert_raises(Minitest::Assertion) do
240
- @test_case.assert_statsd_increment('counter', tags: ['a', 'b']) do
241
- StatsD.increment('counter', sample_rate: 'abc', tags: ['a', 'b'])
242
- end
243
- end
244
- assert_equal "Unexpected sample rate type for metric counter, must be numeric", assertion.message
245
- end
246
-
247
313
  def test_nested_assertions
248
314
  @test_case.assert_statsd_increment('counter1') do
249
315
  @test_case.assert_statsd_increment('counter2') do
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class CaptureSinktest < Minitest::Test
8
6
  def test_capture_sink_captures_datagram_instances
9
7
  capture_sink = StatsD::Instrument::CaptureSink.new(parent: [])
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class ClientTest < Minitest::Test
8
6
  def setup
9
7
  @client = StatsD::Instrument::Client.new(datagram_builder_class: StatsD::Instrument::StatsDDatagramBuilder)
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'test_helper'
4
- require 'statsd/instrument/client'
5
4
 
6
5
  module Compatibility
7
6
  class DogStatsDDatagramCompatibilityTest < Minitest::Test
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class DatagramBuilderTest < Minitest::Test
8
6
  def setup
9
7
  @datagram_builder = StatsD::Instrument::DatagramBuilder.new
@@ -17,7 +15,7 @@ class DatagramBuilderTest < Minitest::Test
17
15
  end
18
16
 
19
17
  def test_normalize_unsupported_tag_names
20
- assert_equal ['ignored'], @datagram_builder.send(:normalize_tags, ['igno|re,d'])
18
+ assert_equal ['ign#ored'], @datagram_builder.send(:normalize_tags, ['ign#o|re,d'])
21
19
  # Note: how this is interpreted by the backend is undefined.
22
20
  # We rely on the user to not do stuff like this if they don't want to be surprised.
23
21
  # We do not want to take the performance hit of normaling this.
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+
5
+ class DatagramTest < Minitest::Test
6
+ def test_parsing_datagrams
7
+ datagram = 'Kernel.Orders.order_creation_path:1|c|' \
8
+ '#order_source:web,code_source:NilController#NilAction,order_builder:false,' \
9
+ 'multi_currency:false,fulfillment_orders_beta_enabled:false'
10
+
11
+ parsed = StatsD::Instrument::Datagram.new(datagram)
12
+ assert_includes parsed.tags, 'code_source:NilController#NilAction'
13
+ end
14
+ end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class DogStatsDDatagramBuilderTest < Minitest::Test
8
6
  def setup
9
7
  @datagram_builder = StatsD::Instrument::DogStatsDDatagramBuilder.new
@@ -103,7 +103,7 @@ class EnvironmentTest < Minitest::Test
103
103
  def test_default_client_has_sensible_defaults
104
104
  env = StatsD::Instrument::Environment.new('STATSD_ENV' => 'production')
105
105
 
106
- assert_equal StatsD::Instrument::StatsDDatagramBuilder, env.default_client.datagram_builder_class
106
+ assert_equal StatsD::Instrument::DogStatsDDatagramBuilder, env.default_client.datagram_builder_class
107
107
  assert_equal 'localhost', env.default_client.sink.host
108
108
  assert_equal 8125, env.default_client.sink.port
109
109
  assert_equal 1.0, env.default_client.default_sample_rate
@@ -22,4 +22,21 @@ class HelpersTest < Minitest::Test
22
22
  assert_equal 'gauge', metrics[1].name
23
23
  assert_equal 12, metrics[1].value
24
24
  end
25
+
26
+ def test_capture_metrics_with_new_client
27
+ @old_client = StatsD.singleton_client
28
+ StatsD.singleton_client = StatsD.client
29
+
30
+ StatsD.increment('counter')
31
+ metrics = @test_case.capture_statsd_datagrams do
32
+ StatsD.increment('counter')
33
+ StatsD.gauge('gauge', 12)
34
+ end
35
+ StatsD.gauge('gauge', 15)
36
+
37
+ assert_equal 2, metrics.length
38
+
39
+ ensure
40
+ StatsD.singleton_client = @old_client
41
+ end
25
42
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class LogSinktest < Minitest::Test
8
6
  def test_log_sink
9
7
  logger = Logger.new(log = StringIO.new)
@@ -15,8 +15,8 @@ class LoggerBackendTest < Minitest::Test
15
15
  @backend.collect_metric(@metric1)
16
16
  @backend.collect_metric(@metric2)
17
17
  assert_equal <<~LOG, @io.string
18
- [StatsD] increment mock.counter:1 #a:b #c:d
19
- [StatsD] measure mock.measure:123 @0.3
18
+ [StatsD] mock.counter:1|c|#a:b,c:d
19
+ [StatsD] mock.measure:123|ms|@0.3
20
20
  LOG
21
21
  end
22
22
  end
@@ -36,11 +36,11 @@ class MetricTest < Minitest::Test
36
36
  end
37
37
 
38
38
  def test_default_tags
39
- StatsD.stubs(:default_tags).returns(['default_tag:default_value'])
39
+ StatsD.legacy_singleton_client.stubs(:default_tags).returns(['default_tag:default_value'])
40
40
  m = StatsD::Instrument::Metric.new(type: :c, name: 'counter', tags: { tag: 'value' })
41
41
  assert_equal ['tag:value', 'default_tag:default_value'], m.tags
42
42
 
43
- StatsD.stubs(:default_tags).returns(['tag:value'])
43
+ StatsD.legacy_singleton_client.stubs(:default_tags).returns(['tag:value'])
44
44
  m = StatsD::Instrument::Metric.new(type: :c, name: 'counter', tags: { tag: 'value' })
45
45
  assert_equal ['tag:value', 'tag:value'], m.tags # we don't care about duplicates
46
46
  end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class NullSinktest < Minitest::Test
8
6
  def test_null_sink
9
7
  null_sink = StatsD::Instrument::NullSink.new
@@ -0,0 +1,43 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ require 'statsd/instrument/rubocop'
5
+
6
+ module Rubocop
7
+ class SingletonConfigurationTest < Minitest::Test
8
+ include RubocopHelper
9
+
10
+ def setup
11
+ @cop = RuboCop::Cop::StatsD::SingletonConfiguration.new
12
+ end
13
+
14
+ def test_offense_statsd_backend
15
+ assert_offense('StatsD.backend = "foo"')
16
+ assert_offense('old_backend = StatsD.backend')
17
+ end
18
+
19
+ def test_offense_statsd_prefix
20
+ assert_offense('StatsD.prefix = "foo"')
21
+ assert_offense('"#{StatsD.prefix}.foo"')
22
+ end
23
+
24
+ def test_offense_statsd_default_tags
25
+ assert_offense('StatsD.default_tags = ["foo"]')
26
+ assert_offense('StatsD.default_tags.empty?')
27
+ end
28
+
29
+ def test_offense_statsd_default_sample_rate
30
+ assert_offense('StatsD.default_sample_rate = 1.0')
31
+ assert_offense('should_sample = StatsD.default_sample_rate > rand')
32
+ end
33
+
34
+ def test_no_offense_for_other_methods
35
+ assert_no_offenses('StatsD.singleton_client = my_client')
36
+ assert_no_offenses('StatsD.logger.info("foo")')
37
+ end
38
+
39
+ def test_no_offense_for_constant_reference
40
+ assert_no_offenses('legacy_client = StatsD')
41
+ end
42
+ end
43
+ end
@@ -2,8 +2,6 @@
2
2
 
3
3
  require 'test_helper'
4
4
 
5
- require 'statsd/instrument/client'
6
-
7
5
  class StatsDDatagramBuilderTest < Minitest::Test
8
6
  def setup
9
7
  @datagram_builder = StatsD::Instrument::StatsDDatagramBuilder.new
@@ -221,11 +221,10 @@ class StatsDInstrumentationTest < Minitest::Test
221
221
  ActiveMerchant::UniqueGateway.statsd_remove_measure :ssl_post, 'ActiveMerchant::Gateway.ssl_post'
222
222
  end
223
223
 
224
- def test_statsd_measure_yells_without_block
225
- err = assert_raises(ArgumentError) do
224
+ def test_statsd_measure_raises_without_a_provided_block
225
+ assert_raises(LocalJumpError) do
226
226
  assert_statsd_measure('ActiveMerchant.Gateway.ssl_post')
227
227
  end
228
- assert_equal "block must be given", err.to_s
229
228
  end
230
229
 
231
230
  def test_statsd_measure_with_method_receiving_block
@@ -268,11 +267,10 @@ class StatsDInstrumentationTest < Minitest::Test
268
267
  ActiveMerchant::UniqueGateway.statsd_remove_distribution :ssl_post, 'ActiveMerchant::Gateway.ssl_post'
269
268
  end
270
269
 
271
- def test_statsd_distribution_yells_without_block
272
- err = assert_raises(ArgumentError) do
270
+ def test_statsd_distribution_raises_without_a_provided_block
271
+ assert_raises(LocalJumpError) do
273
272
  assert_statsd_distribution('ActiveMerchant.Gateway.ssl_post')
274
273
  end
275
- assert_equal "block must be given", err.to_s
276
274
  end
277
275
 
278
276
  def test_statsd_distribution_with_method_receiving_block