minitest 2.12.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/.autotest CHANGED
@@ -10,6 +10,7 @@ Autotest.add_hook :initialize do |at|
10
10
  at.extra_class_map["TestMeta"] = "test/test_minitest_spec.rb"
11
11
  at.extra_class_map["TestMiniTestUnitTestCase"] = "test/test_minitest_unit.rb"
12
12
  at.extra_class_map["TestMiniTestUnit"] = "test/test_minitest_unit.rb"
13
+ at.extra_class_map["TestMiniTestStub"] = "test/test_minitest_mock.rb"
13
14
  at.add_exception 'coverage.info'
14
15
  at.add_exception 'coverage'
15
16
  end
@@ -1,3 +1,21 @@
1
+ === 3.0.0 / 2012-05-08
2
+
3
+ * 3 major enhancements:
4
+
5
+ * Added Object#stub (in minitest/mock.rb).
6
+ * Mock#expect mocks are used in the order they're given.
7
+ * Mock#verify now strictly compares against expect calls.
8
+
9
+ * 3 minor enhancements:
10
+
11
+ * Added caller to deprecation message.
12
+ * Mock error messages are much prettier.
13
+ * Removed String check for RHS of assert/refute_match. This lets #to_str work properly.
14
+
15
+ * 1 bug fix:
16
+
17
+ * Support drive letter on Windows. Patch provided from MRI by Usaku NAKAMURA. (ayumin)
18
+
1
19
  === 2.12.1 / 2012-04-10
2
20
 
3
21
  * 1 minor enhancement:
@@ -11,8 +11,8 @@ lib/minitest/mock.rb
11
11
  lib/minitest/pride.rb
12
12
  lib/minitest/spec.rb
13
13
  lib/minitest/unit.rb
14
- test/metametameta.rb
15
- test/test_minitest_benchmark.rb
16
- test/test_minitest_mock.rb
17
- test/test_minitest_spec.rb
18
- test/test_minitest_unit.rb
14
+ test/minitest/metametameta.rb
15
+ test/minitest/test_minitest_benchmark.rb
16
+ test/minitest/test_minitest_mock.rb
17
+ test/minitest/test_minitest_spec.rb
18
+ test/minitest/test_minitest_unit.rb
data/README.txt CHANGED
@@ -33,8 +33,8 @@ algorithms in a repeatable manner. Now you can assert that your newb
33
33
  co-worker doesn't replace your linear algorithm with an exponential
34
34
  one!
35
35
 
36
- minitest/mock by Steven Baker, is a beautifully tiny mock object
37
- framework.
36
+ minitest/mock by Steven Baker, is a beautifully tiny mock (and stub)
37
+ object framework.
38
38
 
39
39
  minitest/pride shows pride in testing and adds coloring to your test
40
40
  output. I guess it is an example of how to write IO pipes too. :P
@@ -54,7 +54,7 @@ discovery.
54
54
  * minitest/autorun - the easy and explicit way to run all your tests.
55
55
  * minitest/unit - a very fast, simple, and clean test system.
56
56
  * minitest/spec - a very fast, simple, and clean spec system.
57
- * minitest/mock - a simple and clean mock system.
57
+ * minitest/mock - a simple and clean mock/stub system.
58
58
  * minitest/benchmark - an awesome way to assert your algorithm's performance.
59
59
  * minitest/pride - show your pride in testing!
60
60
  * Incredibly small and fast runner, but no bells and whistles.
@@ -194,6 +194,18 @@ Output is tab-delimited to make it easy to paste into a spreadsheet.
194
194
  end
195
195
  end
196
196
 
197
+ === Stubs
198
+
199
+ def test_stale_eh
200
+ obj_under_test = Something.new
201
+
202
+ refute obj_under_test.stale?
203
+
204
+ Time.stub :now, Time.at(0) do # stub goes away once the block is done
205
+ assert obj_under_test.stale?
206
+ end
207
+ end
208
+
197
209
  === Customizable Test Runner Types:
198
210
 
199
211
  MiniTest::Unit.runner=(runner) provides an easy way of creating custom
@@ -284,6 +296,7 @@ minitest-wscolor :: Yet another test colorizer.
284
296
  minitest_owrapper :: Get tests results as a TestResult object.
285
297
  minitest_should :: Shoulda style syntax for minitest test::unit.
286
298
  minitest_tu_shim :: minitest_tu_shim bridges between test/unit and minitest.
299
+ mongoid-minitest :: MiniTest matchers for Mongoid.
287
300
 
288
301
  == REQUIREMENTS:
289
302
 
@@ -50,6 +50,15 @@ module MiniTest
50
50
  self
51
51
  end
52
52
 
53
+ def call name, data
54
+ case data
55
+ when Hash then
56
+ "#{name}(#{data[:args].inspect[1..-2]}) => #{data[:retval].inspect}"
57
+ else
58
+ data.map { |d| call name, d }.join ", "
59
+ end
60
+ end
61
+
53
62
  ##
54
63
  # Verify that all methods were called as expected. Raises
55
64
  # +MockExpectationError+ if the mock object was not called as
@@ -58,8 +67,8 @@ module MiniTest
58
67
  def verify
59
68
  @expected_calls.each do |name, calls|
60
69
  calls.each do |expected|
61
- msg1 = "expected #{name}, #{expected.inspect}"
62
- msg2 = "#{msg1}, got #{@actual_calls[name].inspect}"
70
+ msg1 = "expected #{call name, expected}"
71
+ msg2 = "#{msg1}, got [#{call name, @actual_calls[name]}]"
63
72
 
64
73
  raise MockExpectationError, msg2 if
65
74
  @actual_calls.has_key? name and
@@ -78,25 +87,30 @@ module MiniTest
78
87
  [sym, @expected_calls.keys.sort_by(&:to_s)]
79
88
  end
80
89
 
81
- expected_calls = @expected_calls[sym].select { |call| call[:args].size == args.size }
90
+ index = @actual_calls[sym].length
91
+ expected_call = @expected_calls[sym][index]
82
92
 
83
- if expected_calls.empty?
84
- arg_sizes = @expected_calls[sym].map { |call| call[:args].size }.uniq.sort
85
- raise ArgumentError, "mocked method %p expects %s arguments, got %d" %
86
- [sym, arg_sizes.join('/'), args.size]
93
+ unless expected_call then
94
+ raise MockExpectationError, "No more expects available for %p: %p" %
95
+ [sym, args]
87
96
  end
88
97
 
89
- expected_call = expected_calls.find do |call|
90
- call[:args].zip(args).all? { |mod, a| mod === a or mod == a }
98
+ expected_args, retval = expected_call[:args], expected_call[:retval]
99
+
100
+ if expected_args.size != args.size then
101
+ raise ArgumentError, "mocked method %p expects %d arguments, got %d" %
102
+ [sym, expected_args.size, args.size]
91
103
  end
92
104
 
93
- unless expected_call
105
+ fully_matched = expected_args.zip(args).all? { |mod, a|
106
+ mod === a or mod == a
107
+ }
108
+
109
+ unless fully_matched then
94
110
  raise MockExpectationError, "mocked method %p called with unexpected arguments %p" %
95
111
  [sym, args]
96
112
  end
97
113
 
98
- expected_args, retval = expected_call[:args], expected_call[:retval]
99
-
100
114
  @actual_calls[sym] << {
101
115
  :retval => retval,
102
116
  :args => expected_args.zip(args).map { |mod, a| mod === a ? mod : a }
@@ -111,3 +125,41 @@ module MiniTest
111
125
  end
112
126
  end
113
127
  end
128
+
129
+ class Object # :nodoc:
130
+
131
+ ##
132
+ # Add a temporary stubbed method replacing +name+ for the duration
133
+ # of the +block+. If +val_or_callable+ responds to #call, then it
134
+ # returns the result of calling it, otherwise returns the value
135
+ # as-is. Cleans up the stub at the end of the +block+.
136
+ #
137
+ # def test_stale_eh
138
+ # obj_under_test = Something.new
139
+ # refute obj_under_test.stale?
140
+ #
141
+ # Time.stub :now, Time.at(0) do
142
+ # assert obj_under_test.stale?
143
+ # end
144
+ # end
145
+
146
+ def stub name, val_or_callable, &block
147
+ new_name = "__minitest_stub__#{name}"
148
+
149
+ metaclass = class << self; self; end
150
+ metaclass.send :alias_method, new_name, name
151
+ metaclass.send :define_method, name do |*args|
152
+ if val_or_callable.respond_to? :call then
153
+ val_or_callable.call(*args)
154
+ else
155
+ val_or_callable
156
+ end
157
+ end
158
+
159
+ yield
160
+ ensure
161
+ metaclass.send :undef_method, name
162
+ metaclass.send :alias_method, name, new_name
163
+ metaclass.send :undef_method, new_name
164
+ end
165
+ end
@@ -186,7 +186,7 @@ module MiniTest
186
186
  # Fails unless the block returns a true value.
187
187
 
188
188
  def assert_block msg = nil
189
- warn "NOTE: MiniTest::Unit::TestCase#assert_block is deprecated, use assert. It will be removed on or after 2012-06-01."
189
+ warn "NOTE: MiniTest::Unit::TestCase#assert_block is deprecated, use assert. It will be removed on or after 2012-06-01. Called from #{caller.first}"
190
190
  msg = message(msg) { "Expected block to return true value" }
191
191
  assert yield, msg
192
192
  end
@@ -270,13 +270,13 @@ module MiniTest
270
270
  end
271
271
 
272
272
  ##
273
- # Fails unless +exp+ is <tt>=~</tt> +act+.
273
+ # Fails unless +matcher+ <tt>=~</tt> +obj+.
274
274
 
275
- def assert_match exp, act, msg = nil
276
- msg = message(msg) { "Expected #{mu_pp(exp)} to match #{mu_pp(act)}" }
277
- assert_respond_to act, :"=~"
278
- exp = Regexp.new Regexp.escape exp if String === exp and String === act
279
- assert exp =~ act, msg
275
+ def assert_match matcher, obj, msg = nil
276
+ msg = message(msg) { "Expected #{mu_pp matcher} to match #{mu_pp obj}" }
277
+ assert_respond_to matcher, :"=~"
278
+ matcher = Regexp.new Regexp.escape matcher if String === matcher
279
+ assert matcher =~ obj, msg
280
280
  end
281
281
 
282
282
  ##
@@ -521,7 +521,7 @@ module MiniTest
521
521
  end
522
522
 
523
523
  ##
524
- # For comparing Floats. Fails if +exp+ is within +delta+ of +act+
524
+ # For comparing Floats. Fails if +exp+ is within +delta+ of +act+.
525
525
  #
526
526
  # refute_in_delta Math::PI, (22.0 / 7.0)
527
527
 
@@ -542,7 +542,7 @@ module MiniTest
542
542
  end
543
543
 
544
544
  ##
545
- # Fails if +collection+ includes +obj+
545
+ # Fails if +collection+ includes +obj+.
546
546
 
547
547
  def refute_includes collection, obj, msg = nil
548
548
  msg = message(msg) {
@@ -553,7 +553,7 @@ module MiniTest
553
553
  end
554
554
 
555
555
  ##
556
- # Fails if +obj+ is an instance of +cls+
556
+ # Fails if +obj+ is an instance of +cls+.
557
557
 
558
558
  def refute_instance_of cls, obj, msg = nil
559
559
  msg = message(msg) {
@@ -563,7 +563,7 @@ module MiniTest
563
563
  end
564
564
 
565
565
  ##
566
- # Fails if +obj+ is a kind of +cls+
566
+ # Fails if +obj+ is a kind of +cls+.
567
567
 
568
568
  def refute_kind_of cls, obj, msg = nil # TODO: merge with instance_of
569
569
  msg = message(msg) { "Expected #{mu_pp(obj)} to not be a kind of #{cls}" }
@@ -571,13 +571,13 @@ module MiniTest
571
571
  end
572
572
 
573
573
  ##
574
- # Fails if +exp+ <tt>=~</tt> +act+
574
+ # Fails if +matcher+ <tt>=~</tt> +obj+.
575
575
 
576
- def refute_match exp, act, msg = nil
577
- msg = message(msg) { "Expected #{mu_pp(exp)} to not match #{mu_pp(act)}" }
578
- assert_respond_to act, :"=~"
579
- exp = (/#{Regexp.escape exp}/) if String === exp and String === act
580
- refute exp =~ act, msg
576
+ def refute_match matcher, obj, msg = nil
577
+ msg = message(msg) {"Expected #{mu_pp matcher} to not match #{mu_pp obj}"}
578
+ assert_respond_to matcher, :"=~"
579
+ matcher = Regexp.new Regexp.escape matcher if String === matcher
580
+ refute matcher =~ obj, msg
581
581
  end
582
582
 
583
583
  ##
@@ -645,7 +645,7 @@ module MiniTest
645
645
  end
646
646
 
647
647
  class Unit # :nodoc:
648
- VERSION = "2.12.1" # :nodoc:
648
+ VERSION = "3.0.0" # :nodoc:
649
649
 
650
650
  attr_accessor :report, :failures, :errors, :skips # :nodoc:
651
651
  attr_accessor :test_count, :assertion_count # :nodoc:
@@ -19,8 +19,15 @@ class MetaMetaMetaTestCase < MiniTest::Unit::TestCase
19
19
  output = @output.string.dup
20
20
  output.sub!(/Finished tests in .*/, "Finished tests in 0.00")
21
21
  output.sub!(/Loaded suite .*/, 'Loaded suite blah')
22
- output.gsub!(/\[[^\]:]+:\d+\]/, '[FILE:LINE]')
23
- output.gsub!(/^(\s+)[^:]+:\d+:in/, '\1FILE:LINE:in')
22
+
23
+ if windows? then
24
+ output.gsub!(/\[(?:[A-Za-z]:)?[^\]:]+:\d+\]/, '[FILE:LINE]')
25
+ output.gsub!(/^(\s+)(?:[A-Za-z]:)?[^:]+:\d+:in/, '\1FILE:LINE:in')
26
+ else
27
+ output.gsub!(/\[[^\]:]+:\d+\]/, '[FILE:LINE]')
28
+ output.gsub!(/^(\s+)[^:]+:\d+:in/, '\1FILE:LINE:in')
29
+ end
30
+
24
31
  assert_equal(expected, output)
25
32
  end
26
33
 
@@ -20,7 +20,7 @@ class TestMiniTestMock < MiniTest::Unit::TestCase
20
20
  def test_blow_up_if_not_called
21
21
  @mock.foo
22
22
 
23
- util_verify_bad
23
+ util_verify_bad "expected meaning_of_life() => 42, got []"
24
24
  end
25
25
 
26
26
  def test_not_blow_up_if_everything_called
@@ -40,7 +40,7 @@ class TestMiniTestMock < MiniTest::Unit::TestCase
40
40
  @mock.meaning_of_life
41
41
  @mock.expect(:bar, true)
42
42
 
43
- util_verify_bad
43
+ util_verify_bad "expected bar() => true, got []"
44
44
  end
45
45
 
46
46
  def test_blow_up_on_wrong_number_of_arguments
@@ -78,15 +78,20 @@ class TestMiniTestMock < MiniTest::Unit::TestCase
78
78
  @mock.meaning_of_life
79
79
  @mock.expect(:sum, 3, [1, 2])
80
80
 
81
- assert_raises MockExpectationError do
81
+ e = assert_raises MockExpectationError do
82
82
  @mock.sum(2, 4)
83
83
  end
84
+
85
+ exp = "mocked method :sum called with unexpected arguments [2, 4]"
86
+ assert_equal exp, e.message
84
87
  end
85
88
 
86
89
  def test_expect_with_non_array_args
87
- assert_raises ArgumentError do
90
+ e = assert_raises ArgumentError do
88
91
  @mock.expect :blah, 3, false
89
92
  end
93
+
94
+ assert_equal "args must be an array", e.message
90
95
  end
91
96
 
92
97
  def test_respond_appropriately
@@ -143,27 +148,26 @@ class TestMiniTestMock < MiniTest::Unit::TestCase
143
148
  mock = MiniTest::Mock.new
144
149
  mock.expect :strict_expectation, true, [2]
145
150
 
146
- assert_raises MockExpectationError do
151
+ e = assert_raises MockExpectationError do
147
152
  mock.strict_expectation 1
148
153
  end
154
+
155
+ exp = "mocked method :strict_expectation called with unexpected arguments [1]"
156
+ assert_equal exp, e.message
149
157
  end
150
158
 
151
- def test_verify_shows_the_actual_arguments_in_the_message
159
+ def test_method_missing_empty
152
160
  mock = MiniTest::Mock.new
153
- mock.expect :capitalized, true, ["a"]
154
- mock.expect :capitalized, true, ["b"]
155
161
 
156
- mock.capitalized "b"
162
+ mock.expect :a, nil
163
+
164
+ mock.a
157
165
 
158
166
  e = assert_raises MockExpectationError do
159
- mock.verify
167
+ mock.a
160
168
  end
161
169
 
162
- a = {:retval=>true, :args=>["a"]}
163
- b = {:retval=>true, :args=>["b"]}
164
-
165
- expected = "expected capitalized, #{a.inspect}, got [#{b.inspect}]"
166
- assert_equal expected, e.message
170
+ assert_equal "No more expects available for :a: []", e.message
167
171
  end
168
172
 
169
173
  def test_same_method_expects_are_verified_when_all_called
@@ -182,14 +186,79 @@ class TestMiniTestMock < MiniTest::Unit::TestCase
182
186
  mock.expect :foo, nil, [:bar]
183
187
  mock.expect :foo, nil, [:baz]
184
188
 
185
- mock.foo :baz
189
+ mock.foo :bar
190
+
191
+ e = assert_raises(MockExpectationError) { mock.verify }
186
192
 
187
- assert_raises(MockExpectationError) { mock.verify }
193
+ exp = "expected foo(:baz) => nil, got [foo(:bar) => nil]"
194
+
195
+ assert_equal exp, e.message
188
196
  end
189
-
190
- def util_verify_bad
191
- assert_raises MockExpectationError do
197
+
198
+ def util_verify_bad exp
199
+ e = assert_raises MockExpectationError do
192
200
  @mock.verify
193
201
  end
202
+
203
+ assert_equal exp, e.message
204
+ end
205
+ end
206
+
207
+ require "test/minitest/metametameta"
208
+
209
+ class TestMiniTestStub < MiniTest::Unit::TestCase
210
+ def setup
211
+ super
212
+ MiniTest::Unit::TestCase.reset
213
+
214
+ @tc = MiniTest::Unit::TestCase.new 'fake tc'
215
+ @assertion_count = 1
216
+ end
217
+
218
+ def teardown
219
+ super
220
+ assert_equal @assertion_count, @tc._assertions
221
+ end
222
+
223
+ def assert_stub val_or_callable
224
+ @assertion_count += 1
225
+
226
+ t = Time.now.to_i
227
+
228
+ Time.stub :now, val_or_callable do
229
+ @tc.assert_equal 42, Time.now
230
+ end
231
+
232
+ @tc.assert_operator Time.now.to_i, :>=, t
233
+ end
234
+
235
+ def test_stub_value
236
+ assert_stub 42
237
+ end
238
+
239
+ def test_stub_block
240
+ assert_stub lambda { 42 }
241
+ end
242
+
243
+ def test_stub_block_args
244
+ @assertion_count += 1
245
+
246
+ t = Time.now.to_i
247
+
248
+ Time.stub :now, lambda { |n| n * 2 } do
249
+ @tc.assert_equal 42, Time.now(21)
250
+ end
251
+
252
+ @tc.assert_operator Time.now.to_i, :>=, t
253
+ end
254
+
255
+ def test_stub_callable
256
+ obj = Object.new
257
+
258
+ def obj.call
259
+ 42
260
+ end
261
+
262
+ assert_stub obj
194
263
  end
195
264
  end
@@ -1,5 +1,5 @@
1
1
  require 'pathname'
2
- require 'test/metametameta'
2
+ require 'test/minitest/metametameta'
3
3
 
4
4
  module MyModule; end
5
5
  class AnError < StandardError; include MyModule; end
@@ -699,13 +699,16 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase
699
699
 
700
700
  def test_assert_block
701
701
  exp = ["NOTE: MiniTest::Unit::TestCase#assert_block is deprecated,",
702
- "use assert. It will be removed on or after 2012-06-01.\n"].join " "
702
+ "use assert. It will be removed on or after 2012-06-01."].join " "
703
703
 
704
- assert_output "", exp do
704
+ out, err = capture_io do
705
705
  @tc.assert_block do
706
706
  true
707
707
  end
708
708
  end
709
+
710
+ assert_equal "", out
711
+ assert_match exp, err
709
712
  end
710
713
 
711
714
  def test_assert_block_triggered
@@ -927,7 +930,7 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase
927
930
  @tc.assert_match(/\w+/, "blah blah blah")
928
931
  end
929
932
 
930
- def test_assert_match_object
933
+ def test_assert_match_matcher_object
931
934
  @assertion_count = 2
932
935
 
933
936
  pattern = Object.new
@@ -936,6 +939,15 @@ class TestMiniTestUnitTestCase < MiniTest::Unit::TestCase
936
939
  @tc.assert_match pattern, 5
937
940
  end
938
941
 
942
+ def test_assert_match_matchee_to_str
943
+ @assertion_count = 2
944
+
945
+ obj = Object.new
946
+ def obj.to_str; "blah" end
947
+
948
+ @tc.assert_match "blah", obj
949
+ end
950
+
939
951
  def test_assert_match_object_triggered
940
952
  @assertion_count = 2
941
953
 
@@ -1454,7 +1466,7 @@ FILE:LINE:in `test_assert_raises_triggered_subclass'
1454
1466
  @tc.refute_match(/\d+/, "blah blah blah")
1455
1467
  end
1456
1468
 
1457
- def test_refute_match_object
1469
+ def test_refute_match_matcher_object
1458
1470
  @assertion_count = 2
1459
1471
  @tc.refute_match Object.new, 5 # default #=~ returns false
1460
1472
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest
3
3
  version: !ruby/object:Gem::Version
4
- hash: 61
4
+ hash: 7
5
5
  prerelease:
6
6
  segments:
7
- - 2
8
- - 12
9
- - 1
10
- version: 2.12.1
7
+ - 3
8
+ - 0
9
+ - 0
10
+ version: 3.0.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Davis
@@ -36,7 +36,7 @@ cert_chain:
36
36
  FBHgymkyj/AOSqKRIpXPhjC6
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2012-04-11 00:00:00 Z
39
+ date: 2012-05-09 00:00:00 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
@@ -96,8 +96,8 @@ description: |-
96
96
  co-worker doesn't replace your linear algorithm with an exponential
97
97
  one!
98
98
 
99
- minitest/mock by Steven Baker, is a beautifully tiny mock object
100
- framework.
99
+ minitest/mock by Steven Baker, is a beautifully tiny mock (and stub)
100
+ object framework.
101
101
 
102
102
  minitest/pride shows pride in testing and adds coloring to your test
103
103
  output. I guess it is an example of how to write IO pipes too. :P
@@ -135,11 +135,11 @@ files:
135
135
  - lib/minitest/pride.rb
136
136
  - lib/minitest/spec.rb
137
137
  - lib/minitest/unit.rb
138
- - test/metametameta.rb
139
- - test/test_minitest_benchmark.rb
140
- - test/test_minitest_mock.rb
141
- - test/test_minitest_spec.rb
142
- - test/test_minitest_unit.rb
138
+ - test/minitest/metametameta.rb
139
+ - test/minitest/test_minitest_benchmark.rb
140
+ - test/minitest/test_minitest_mock.rb
141
+ - test/minitest/test_minitest_spec.rb
142
+ - test/minitest/test_minitest_unit.rb
143
143
  - .gemtest
144
144
  homepage: https://github.com/seattlerb/minitest
145
145
  licenses: []
@@ -176,7 +176,7 @@ signing_key:
176
176
  specification_version: 3
177
177
  summary: minitest provides a complete suite of testing facilities supporting TDD, BDD, mocking, and benchmarking
178
178
  test_files:
179
- - test/test_minitest_benchmark.rb
180
- - test/test_minitest_mock.rb
181
- - test/test_minitest_spec.rb
182
- - test/test_minitest_unit.rb
179
+ - test/minitest/test_minitest_benchmark.rb
180
+ - test/minitest/test_minitest_mock.rb
181
+ - test/minitest/test_minitest_spec.rb
182
+ - test/minitest/test_minitest_unit.rb
metadata.gz.sig CHANGED
@@ -1,2 +1,3 @@
1
- c'i @@����m%����t#�A�n%.}�$Δ��8Җ��d�S��a��p�������;�0B<4w������f<
2
- i�½��N…���\�t,���cY�c��?k!1rD��|C��
1
+ ���ܘJE� �$�3�l��#aTW�Hob�>� $MZ�3 ڔ#?�2��J1��T
2
+ GaW:��6r��kס�F=��,�쏎�5��:��"B� ��d�
3
+ i!a,`DӰ����']��I� x�K�:�j&(h���85P ��"�ⵡC���(�>x0)��Id�P �s���FG���*�<E�p�}r��}< ��?3P�H9[LG