minitest 5.27.0 → 6.0.0.a1
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +80 -0
- data/Manifest.txt +13 -4
- data/README.rdoc +5 -88
- data/Rakefile +5 -16
- data/bin/minitest +5 -0
- data/lib/minitest/assertions.rb +24 -56
- data/lib/minitest/autorun.rb +0 -1
- data/lib/minitest/bisect.rb +306 -0
- data/lib/minitest/complete.rb +56 -0
- data/lib/minitest/find_minimal_combination.rb +127 -0
- data/lib/minitest/manual_plugins.rb +4 -16
- data/lib/minitest/parallel.rb +3 -3
- data/lib/minitest/path_expander.rb +418 -0
- data/lib/minitest/pride.rb +1 -1
- data/lib/minitest/server.rb +45 -0
- data/lib/minitest/server_plugin.rb +84 -0
- data/lib/minitest/spec.rb +2 -31
- data/lib/minitest/sprint.rb +104 -0
- data/lib/minitest/sprint_plugin.rb +39 -0
- data/lib/minitest/test.rb +6 -11
- data/lib/minitest/test_task.rb +4 -6
- data/lib/minitest.rb +56 -84
- data/test/minitest/metametameta.rb +1 -1
- data/test/minitest/test_bisect.rb +235 -0
- data/test/minitest/test_find_minimal_combination.rb +138 -0
- data/test/minitest/test_minitest_assertions.rb +33 -47
- data/test/minitest/test_minitest_spec.rb +38 -102
- data/test/minitest/test_minitest_test.rb +20 -99
- data/test/minitest/test_path_expander.rb +229 -0
- data/test/minitest/test_server.rb +149 -0
- data.tar.gz.sig +0 -0
- metadata +47 -27
- metadata.gz.sig +0 -0
- data/.autotest +0 -34
- data/lib/minitest/mock.rb +0 -327
- data/lib/minitest/unit.rb +0 -42
- data/test/minitest/test_minitest_mock.rb +0 -1213
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
require "minitest/autorun"
|
|
2
|
+
require "minitest/bisect"
|
|
3
|
+
|
|
4
|
+
module TestMinitest; end
|
|
5
|
+
|
|
6
|
+
class TestMinitest::TestBisect < Minitest::Test
|
|
7
|
+
attr_accessor :bisect
|
|
8
|
+
|
|
9
|
+
def setup
|
|
10
|
+
self.bisect = Minitest::Bisect.new
|
|
11
|
+
bisect.reset
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def test_class_run
|
|
15
|
+
skip "Need to write test_class_run"
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def test_bisect_files
|
|
19
|
+
skip "Need to write test_bisect_files"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def test_bisect_methods
|
|
23
|
+
skip "Need to write test_bisect_methods"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def test_build_files_cmd
|
|
27
|
+
files = %w[a.rb b.rb c.rb]
|
|
28
|
+
rb = %w[-Ilib:test]
|
|
29
|
+
mt = %w[--seed 42]
|
|
30
|
+
|
|
31
|
+
ruby = Minitest::Bisect::RUBY
|
|
32
|
+
body = "require \"./a.rb\" ; require \"./b.rb\" ; require \"./c.rb\""
|
|
33
|
+
|
|
34
|
+
exp = "#{ruby} -Ilib:test -e '#{body}' -- --seed 42"
|
|
35
|
+
act = bisect.build_files_cmd(files, rb, mt)
|
|
36
|
+
|
|
37
|
+
assert_equal exp, act
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def test_build_methods_cmd
|
|
41
|
+
cmd = "cmd"
|
|
42
|
+
assert_equal "cmd", bisect.build_methods_cmd(cmd)
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def test_build_methods_cmd_verify
|
|
46
|
+
cmd = "cmd"
|
|
47
|
+
cul = []
|
|
48
|
+
bad = %w[A#test_1 B#test_2]
|
|
49
|
+
|
|
50
|
+
exp = "cmd -n \"/^(?:A#(?:test_1)|B#(?:test_2))$/\""
|
|
51
|
+
|
|
52
|
+
assert_equal exp, bisect.build_methods_cmd(cmd, cul, bad)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
def test_build_methods_cmd_verify_same
|
|
56
|
+
cmd = "cmd"
|
|
57
|
+
cul = []
|
|
58
|
+
bad = %w[C#test_5 C#test_6]
|
|
59
|
+
|
|
60
|
+
exp = "cmd -n \"/^(?:C#(?:test_5|test_6))$/\""
|
|
61
|
+
|
|
62
|
+
assert_equal exp, bisect.build_methods_cmd(cmd, cul, bad)
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_build_methods_cmd_full
|
|
66
|
+
cmd = "cmd"
|
|
67
|
+
cul = %w[A#test_1 A#test_2 B#test_3 B#test_4]
|
|
68
|
+
bad = %w[C#test_5 C#test_6]
|
|
69
|
+
|
|
70
|
+
a = "A#(?:test_1|test_2)"
|
|
71
|
+
b = "B#(?:test_3|test_4)"
|
|
72
|
+
c = "C#(?:test_5|test_6)"
|
|
73
|
+
exp = "cmd -n \"/^(?:#{a}|#{b}|#{c})$/\""
|
|
74
|
+
|
|
75
|
+
assert_equal exp, bisect.build_methods_cmd(cmd, cul, bad)
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
def test_build_re
|
|
79
|
+
bad = %w[A#test_1 B#test_2]
|
|
80
|
+
|
|
81
|
+
exp = "/^(?:A#(?:test_1)|B#(?:test_2))$/"
|
|
82
|
+
|
|
83
|
+
assert_equal exp, bisect.build_re(bad)
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
def test_build_re_same
|
|
87
|
+
bad = %w[C#test_5 C#test_6]
|
|
88
|
+
|
|
89
|
+
exp = "/^(?:C#(?:test_5|test_6))$/"
|
|
90
|
+
|
|
91
|
+
assert_equal exp, bisect.build_re(bad)
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
def test_build_re_class_escaping
|
|
95
|
+
bad = ["{}#[]"]
|
|
96
|
+
|
|
97
|
+
exp = "/^(?:\\{\\}#(?:\\[\\]))$/"
|
|
98
|
+
|
|
99
|
+
assert_equal exp, bisect.build_re(bad)
|
|
100
|
+
end
|
|
101
|
+
|
|
102
|
+
def test_build_re_method_escaping
|
|
103
|
+
bad = ["Some Class#It shouldn't care what the name is"]
|
|
104
|
+
|
|
105
|
+
exp = "/^(?:Some Class#(?:It shouldn\\'t care what the name is))$/"
|
|
106
|
+
|
|
107
|
+
assert_equal exp, bisect.build_re(bad)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
def test_map_failures
|
|
111
|
+
bisect.failures =
|
|
112
|
+
{
|
|
113
|
+
"file.rb" => { "Class" => %w[test_method1 test_method2] },
|
|
114
|
+
"blah.rb" => { "Apple" => %w[test_method3 test_method4] },
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
exp = %w[
|
|
118
|
+
Apple#test_method3
|
|
119
|
+
Apple#test_method4
|
|
120
|
+
Class#test_method1
|
|
121
|
+
Class#test_method2
|
|
122
|
+
]
|
|
123
|
+
|
|
124
|
+
assert_equal exp, bisect.map_failures
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
def test_minitest_result
|
|
128
|
+
bisect.minitest_result "file.rb", "TestClass", "test_method", [], 1, 1
|
|
129
|
+
|
|
130
|
+
assert_equal false, bisect.tainted
|
|
131
|
+
assert_empty bisect.failures
|
|
132
|
+
assert_equal ["TestClass#test_method"], bisect.culprits
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
def test_minitest_result_skip
|
|
136
|
+
fail = Minitest::Skip.new("woot")
|
|
137
|
+
|
|
138
|
+
bisect.minitest_result "file.rb", "TestClass", "test_method", [fail], 1, 1
|
|
139
|
+
|
|
140
|
+
assert_equal false, bisect.tainted
|
|
141
|
+
assert_empty bisect.failures
|
|
142
|
+
assert_equal ["TestClass#test_method"], bisect.culprits
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def test_minitest_result_fail
|
|
146
|
+
fail = Minitest::Assertion.new "msg"
|
|
147
|
+
|
|
148
|
+
bisect.minitest_result "file.rb", "TestClass", "test_method", [fail], 1, 1
|
|
149
|
+
|
|
150
|
+
exp = {"file.rb" => {"TestClass" => ["test_method"] }}
|
|
151
|
+
|
|
152
|
+
assert_equal true, bisect.tainted
|
|
153
|
+
assert_equal exp, bisect.failures
|
|
154
|
+
assert_empty bisect.culprits
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
def test_minitest_result_error
|
|
158
|
+
fail = Minitest::UnexpectedError.new RuntimeError.new("woot")
|
|
159
|
+
|
|
160
|
+
bisect.minitest_result "file.rb", "TestClass", "test_method", [fail], 1, 1
|
|
161
|
+
|
|
162
|
+
exp = {"file.rb" => {"TestClass" => ["test_method"] }}
|
|
163
|
+
|
|
164
|
+
assert_equal true, bisect.tainted
|
|
165
|
+
assert_equal exp, bisect.failures
|
|
166
|
+
assert_empty bisect.culprits
|
|
167
|
+
end
|
|
168
|
+
|
|
169
|
+
def test_minitest_start
|
|
170
|
+
bisect.failures["file.rb"]["Class"] << "test_bad1"
|
|
171
|
+
|
|
172
|
+
bisect.minitest_start
|
|
173
|
+
|
|
174
|
+
assert_empty bisect.failures
|
|
175
|
+
end
|
|
176
|
+
|
|
177
|
+
def test_reset
|
|
178
|
+
bisect.seen_bad = true
|
|
179
|
+
bisect.tainted = true
|
|
180
|
+
bisect.failures["file.rb"]["Class"] << "test_bad1"
|
|
181
|
+
bisect.culprits << "A#test_1" << "B#test_2"
|
|
182
|
+
|
|
183
|
+
bisect.reset
|
|
184
|
+
|
|
185
|
+
assert_equal false, bisect.seen_bad
|
|
186
|
+
assert_equal false, bisect.tainted
|
|
187
|
+
assert_empty bisect.failures
|
|
188
|
+
assert_equal %w[A#test_1 B#test_2], bisect.culprits
|
|
189
|
+
end
|
|
190
|
+
|
|
191
|
+
def test_run
|
|
192
|
+
skip "Need to write test_run"
|
|
193
|
+
end
|
|
194
|
+
|
|
195
|
+
def test_time_it
|
|
196
|
+
exp = /\Ado stuff: in 0.\d\d sec\n\z/
|
|
197
|
+
|
|
198
|
+
assert_output exp, "" do
|
|
199
|
+
bisect.time_it "do stuff:", "echo you should not see me"
|
|
200
|
+
end
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
class TestMinitest::TestBisect::TestPathExpander < Minitest::Test
|
|
205
|
+
def test_sanity
|
|
206
|
+
args = %w[1 -Iblah 2 -d 3 -w 4 5 6]
|
|
207
|
+
|
|
208
|
+
mtbpe = Minitest::Bisect::PathExpander
|
|
209
|
+
expander = mtbpe.new args
|
|
210
|
+
|
|
211
|
+
assert_equal %w[-Itest:lib], expander.rb_flags
|
|
212
|
+
assert_same mtbpe::TEST_GLOB, expander.glob
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
def test_process_flags
|
|
216
|
+
args = %w[1 -Iblah 2 -d 3 -w 4 5 6]
|
|
217
|
+
|
|
218
|
+
expander = Minitest::Bisect::PathExpander.new args
|
|
219
|
+
|
|
220
|
+
exp_files = %w[1 2 3 4 5 6]
|
|
221
|
+
exp_flags = %w[-Itest:lib -Iblah -d -w]
|
|
222
|
+
|
|
223
|
+
files = expander.process_flags(args)
|
|
224
|
+
|
|
225
|
+
assert_equal files, exp_files
|
|
226
|
+
|
|
227
|
+
# process_flags only filters and does not mutate args
|
|
228
|
+
assert_same args, expander.args
|
|
229
|
+
refute_equal args, exp_files
|
|
230
|
+
refute_equal files, args
|
|
231
|
+
|
|
232
|
+
# separates rb_flags out for separate handling
|
|
233
|
+
assert_equal exp_flags, expander.rb_flags
|
|
234
|
+
end
|
|
235
|
+
end
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
#!/usr/bin/ruby -w
|
|
2
|
+
|
|
3
|
+
$: << "." << "lib"
|
|
4
|
+
|
|
5
|
+
require "minitest/autorun"
|
|
6
|
+
require "minitest/find_minimal_combination"
|
|
7
|
+
|
|
8
|
+
describe Array, :find_minimal_combination do
|
|
9
|
+
def check(*bad)
|
|
10
|
+
lambda { |sample| bad & sample == bad }
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def record_and_check(tests, *bad)
|
|
14
|
+
lambda { |test| tests << test.join; bad & test == bad }
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def parse_trials s
|
|
18
|
+
s.lines.map { |s| s.chomp.sub(/#.*/, '').delete " " }.reject(&:empty?)
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def assert_steps input, bad, exp
|
|
22
|
+
tests = []
|
|
23
|
+
|
|
24
|
+
found = input.find_minimal_combination(&record_and_check(tests, *bad))
|
|
25
|
+
|
|
26
|
+
assert_equal bad, found, "algorithm is bad"
|
|
27
|
+
|
|
28
|
+
assert_equal parse_trials(exp), tests
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
HEX = "0123456789ABCDEF".chars.to_a
|
|
32
|
+
|
|
33
|
+
# lvl collection
|
|
34
|
+
#
|
|
35
|
+
# 0 | A
|
|
36
|
+
# 1 | B C
|
|
37
|
+
# 2 | D E F G
|
|
38
|
+
# 3 | H I J K L M N O
|
|
39
|
+
# |
|
|
40
|
+
# 4 | 0123456789ABCDEF
|
|
41
|
+
|
|
42
|
+
def test_ordering_best_case_1
|
|
43
|
+
ary = HEX
|
|
44
|
+
bad = %w[0]
|
|
45
|
+
exp = <<~EOT
|
|
46
|
+
#123456789ABCDEF
|
|
47
|
+
01234567 # HIT! -- level 1 = B, C
|
|
48
|
+
0123 # HIT! -- level 2 = D, E
|
|
49
|
+
01 # HIT! -- level 3 = H, I
|
|
50
|
+
0 # HIT!
|
|
51
|
+
EOT
|
|
52
|
+
|
|
53
|
+
assert_steps ary, bad, exp
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def test_ordering_best_case_2
|
|
57
|
+
ary = HEX
|
|
58
|
+
bad = %w[0 1]
|
|
59
|
+
exp = <<~EOT
|
|
60
|
+
01234567 # HIT! -- level 1 = B, C
|
|
61
|
+
0123 # HIT! -- level 2 = D, E
|
|
62
|
+
01 # HIT! -- level 3 = H, I
|
|
63
|
+
0 # miss -- level 4 = 0, 1, n_combos = 1
|
|
64
|
+
1 # miss
|
|
65
|
+
01 # HIT! -- level 3 = H, n_combos = 2
|
|
66
|
+
EOT
|
|
67
|
+
|
|
68
|
+
assert_steps ary, bad, exp
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
def test_ordering
|
|
72
|
+
ary = HEX
|
|
73
|
+
bad = %w[1 F]
|
|
74
|
+
exp = <<~EOT
|
|
75
|
+
01234567 # miss -- level 1 = B, C
|
|
76
|
+
89ABCDEF # miss
|
|
77
|
+
0123 89AB # miss -- level 2 = DF, DG, EF, EG
|
|
78
|
+
0123 CDEF # HIT!
|
|
79
|
+
01 CD # miss -- level 3 = HN, HO
|
|
80
|
+
01 EF # HIT!
|
|
81
|
+
0 E # miss -- level 4 = 0E, 0F, 1E, 1F
|
|
82
|
+
0 F # miss
|
|
83
|
+
1 E # miss
|
|
84
|
+
1 F # HIT!
|
|
85
|
+
EOT
|
|
86
|
+
|
|
87
|
+
assert_steps ary, bad, exp
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
def self.test_find_minimal_combination max, *bad
|
|
91
|
+
define_method "%s_%s_%s" % [__method__, max, bad.join("_")] do
|
|
92
|
+
a = (1..max).to_a
|
|
93
|
+
|
|
94
|
+
assert_equal bad, a.find_minimal_combination(&check(*bad))
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def self.test_find_minimal_combination_and_count max, nsteps, *bad
|
|
99
|
+
define_method "%s_%s_%s_%s" % [__method__, max, nsteps, bad.join("_")] do
|
|
100
|
+
a = (1..max).to_a
|
|
101
|
+
|
|
102
|
+
found, count = a.find_minimal_combination_and_count(&check(*bad))
|
|
103
|
+
|
|
104
|
+
assert_equal bad, found
|
|
105
|
+
assert_equal nsteps, count
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
test_find_minimal_combination 8, 5
|
|
110
|
+
test_find_minimal_combination 8, 2, 7
|
|
111
|
+
test_find_minimal_combination 8, 1, 2, 7
|
|
112
|
+
test_find_minimal_combination 8, 1, 4, 7
|
|
113
|
+
test_find_minimal_combination 8, 1, 3, 5, 7
|
|
114
|
+
|
|
115
|
+
test_find_minimal_combination 9, 5
|
|
116
|
+
test_find_minimal_combination 9, 9
|
|
117
|
+
test_find_minimal_combination 9, 2, 7
|
|
118
|
+
test_find_minimal_combination 9, 1, 2, 7
|
|
119
|
+
test_find_minimal_combination 9, 1, 4, 7
|
|
120
|
+
test_find_minimal_combination 9, 1, 3, 5, 7
|
|
121
|
+
|
|
122
|
+
test_find_minimal_combination 1023, 5
|
|
123
|
+
test_find_minimal_combination 1023, 1005
|
|
124
|
+
test_find_minimal_combination 1023, 802, 907
|
|
125
|
+
test_find_minimal_combination 1023, 7, 15, 166, 1001
|
|
126
|
+
test_find_minimal_combination 1023, 1000, 1001, 1002
|
|
127
|
+
test_find_minimal_combination 1023, 1001, 1003, 1005, 1007
|
|
128
|
+
test_find_minimal_combination 1024, 1001, 1003, 1005, 1007
|
|
129
|
+
test_find_minimal_combination 1024, 1, 1024
|
|
130
|
+
|
|
131
|
+
test_find_minimal_combination_and_count 1024, 12, 1, 2
|
|
132
|
+
test_find_minimal_combination_and_count 1024, 23, 1, 1023
|
|
133
|
+
test_find_minimal_combination_and_count 1024, 24, 1, 1024
|
|
134
|
+
test_find_minimal_combination_and_count 1023, 26, 1, 1023
|
|
135
|
+
|
|
136
|
+
test_find_minimal_combination_and_count 1024, 93, 1001, 1003, 1005, 1007
|
|
137
|
+
test_find_minimal_combination_and_count 1023, 93, 1001, 1003, 1005, 1007
|
|
138
|
+
end
|
|
@@ -165,14 +165,20 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
165
165
|
end
|
|
166
166
|
end
|
|
167
167
|
|
|
168
|
-
def
|
|
168
|
+
def test_assert_equal_string_message
|
|
169
169
|
assert_triggered "whoops.\nExpected: 1\n Actual: 2" do
|
|
170
|
+
@tc.assert_equal 1, 2, "whoops"
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
def test_assert_equal_different_message
|
|
175
|
+
assert_triggered "whoops." do
|
|
170
176
|
@tc.assert_equal 1, 2, message { "whoops" }
|
|
171
177
|
end
|
|
172
178
|
end
|
|
173
179
|
|
|
174
180
|
def test_assert_equal_different_lambda
|
|
175
|
-
assert_triggered "whoops
|
|
181
|
+
assert_triggered "whoops" do
|
|
176
182
|
@tc.assert_equal 1, 2, lambda { "whoops" }
|
|
177
183
|
end
|
|
178
184
|
end
|
|
@@ -283,26 +289,8 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
283
289
|
end
|
|
284
290
|
|
|
285
291
|
def test_assert_equal_does_not_allow_lhs_nil
|
|
286
|
-
if
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
@assertion_count += 1
|
|
290
|
-
assert_triggered(/Use assert_nil if expecting nil/) do
|
|
291
|
-
@tc.assert_equal nil, nil
|
|
292
|
-
end
|
|
293
|
-
else
|
|
294
|
-
err_re = /.*?test_minitest_\w+.rb:\d+: warning: DEPRECATED: Use assert_nil if expecting nil. This will fail in Minitest 6./
|
|
295
|
-
err_re = "" if $-w.nil?
|
|
296
|
-
|
|
297
|
-
assert_deprecation err_re do
|
|
298
|
-
@tc.assert_equal nil, nil
|
|
299
|
-
end
|
|
300
|
-
end
|
|
301
|
-
end
|
|
302
|
-
|
|
303
|
-
def test_assert_equal_does_not_allow_lhs_nil_triggered
|
|
304
|
-
assert_triggered "Expected: nil\n Actual: false" do
|
|
305
|
-
@tc.assert_equal nil, false
|
|
292
|
+
assert_triggered(/Use assert_nil if expecting nil/) do
|
|
293
|
+
@tc.assert_equal nil, nil
|
|
306
294
|
end
|
|
307
295
|
end
|
|
308
296
|
|
|
@@ -525,10 +513,14 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
525
513
|
end
|
|
526
514
|
|
|
527
515
|
def test_assert_operator
|
|
516
|
+
@assertion_count += 1
|
|
517
|
+
|
|
528
518
|
@tc.assert_operator 2, :>, 1
|
|
529
519
|
end
|
|
530
520
|
|
|
531
521
|
def test_assert_operator_bad_object
|
|
522
|
+
@assertion_count += 1
|
|
523
|
+
|
|
532
524
|
bad = Object.new
|
|
533
525
|
def bad.== _; true end
|
|
534
526
|
|
|
@@ -536,6 +528,8 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
536
528
|
end
|
|
537
529
|
|
|
538
530
|
def test_assert_operator_triggered
|
|
531
|
+
@assertion_count += 1
|
|
532
|
+
|
|
539
533
|
assert_triggered "Expected 2 to be < 1." do
|
|
540
534
|
@tc.assert_operator 2, :<, 1
|
|
541
535
|
end
|
|
@@ -717,10 +711,14 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
717
711
|
end
|
|
718
712
|
|
|
719
713
|
def test_assert_predicate
|
|
714
|
+
@assertion_count += 1
|
|
715
|
+
|
|
720
716
|
@tc.assert_predicate "", :empty?
|
|
721
717
|
end
|
|
722
718
|
|
|
723
719
|
def test_assert_predicate_triggered
|
|
720
|
+
@assertion_count += 1
|
|
721
|
+
|
|
724
722
|
assert_triggered 'Expected "blah" to be empty?.' do
|
|
725
723
|
@tc.assert_predicate "blah", :empty?
|
|
726
724
|
end
|
|
@@ -962,28 +960,6 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
962
960
|
end
|
|
963
961
|
end
|
|
964
962
|
|
|
965
|
-
def test_assert_send
|
|
966
|
-
@assertion_count = 0 if error_on_warn?
|
|
967
|
-
assert_deprecation(/DEPRECATED: assert_send/) do
|
|
968
|
-
@tc.assert_send [1, :<, 2]
|
|
969
|
-
end
|
|
970
|
-
end
|
|
971
|
-
|
|
972
|
-
def test_assert_send_bad
|
|
973
|
-
if error_on_warn? then
|
|
974
|
-
@assertion_count = 0
|
|
975
|
-
assert_deprecation(/DEPRECATED: assert_send/) do
|
|
976
|
-
@tc.assert_send [1, :>, 2]
|
|
977
|
-
end
|
|
978
|
-
else
|
|
979
|
-
assert_triggered "Expected 1.>(*[2]) to return true." do
|
|
980
|
-
assert_deprecation(/DEPRECATED: assert_send/) do
|
|
981
|
-
@tc.assert_send [1, :>, 2]
|
|
982
|
-
end
|
|
983
|
-
end
|
|
984
|
-
end
|
|
985
|
-
end
|
|
986
|
-
|
|
987
963
|
def test_assert_silent
|
|
988
964
|
@assertion_count = 2
|
|
989
965
|
|
|
@@ -1141,7 +1117,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
1141
1117
|
|
|
1142
1118
|
# These don't have corresponding refutes _on purpose_. They're
|
|
1143
1119
|
# useless and will never be added, so don't bother.
|
|
1144
|
-
ignores = %w[assert_output assert_raises
|
|
1120
|
+
ignores = %w[assert_output assert_raises
|
|
1145
1121
|
assert_silent assert_throws assert_mock]
|
|
1146
1122
|
|
|
1147
1123
|
ignores += %w[assert_allocations] # for minitest-gcstats
|
|
@@ -1342,10 +1318,14 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
1342
1318
|
end
|
|
1343
1319
|
|
|
1344
1320
|
def test_refute_operator
|
|
1321
|
+
@assertion_count += 1
|
|
1322
|
+
|
|
1345
1323
|
@tc.refute_operator 2, :<, 1
|
|
1346
1324
|
end
|
|
1347
1325
|
|
|
1348
1326
|
def test_refute_operator_bad_object
|
|
1327
|
+
@assertion_count += 1
|
|
1328
|
+
|
|
1349
1329
|
bad = Object.new
|
|
1350
1330
|
def bad.== _; true end
|
|
1351
1331
|
|
|
@@ -1353,6 +1333,8 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
1353
1333
|
end
|
|
1354
1334
|
|
|
1355
1335
|
def test_refute_operator_triggered
|
|
1336
|
+
@assertion_count += 1
|
|
1337
|
+
|
|
1356
1338
|
assert_triggered "Expected 2 to not be > 1." do
|
|
1357
1339
|
@tc.refute_operator 2, :>, 1
|
|
1358
1340
|
end
|
|
@@ -1389,10 +1371,14 @@ class TestMinitestAssertions < Minitest::Test
|
|
|
1389
1371
|
end
|
|
1390
1372
|
|
|
1391
1373
|
def test_refute_predicate
|
|
1374
|
+
@assertion_count += 1
|
|
1375
|
+
|
|
1392
1376
|
@tc.refute_predicate "42", :empty?
|
|
1393
1377
|
end
|
|
1394
1378
|
|
|
1395
1379
|
def test_refute_predicate_triggered
|
|
1380
|
+
@assertion_count += 1
|
|
1381
|
+
|
|
1396
1382
|
assert_triggered 'Expected "" to not be empty?.' do
|
|
1397
1383
|
@tc.refute_predicate "", :empty?
|
|
1398
1384
|
end
|
|
@@ -1568,10 +1554,10 @@ class TestMinitestAssertionHelpers < Minitest::Test
|
|
|
1568
1554
|
assert_equal "blah1.\nblah2.", message("blah1") { "blah2" }.call
|
|
1569
1555
|
|
|
1570
1556
|
message = proc { "blah1" }
|
|
1571
|
-
assert_equal "blah1
|
|
1557
|
+
assert_equal "blah1", message(message) { "blah2" }.call
|
|
1572
1558
|
|
|
1573
1559
|
message = message { "blah1" }
|
|
1574
|
-
assert_equal "blah1
|
|
1560
|
+
assert_equal "blah1.", message(message) { "blah2" }.call
|
|
1575
1561
|
end
|
|
1576
1562
|
|
|
1577
1563
|
def test_message_deferred
|