test-unit 3.2.0 → 3.3.6
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 +5 -5
- data/COPYING +4 -1
- data/README.md +11 -11
- data/Rakefile +10 -1
- data/doc/text/getting-started.md +246 -0
- data/doc/text/news.md +372 -1
- data/lib/test/unit.rb +171 -157
- data/lib/test/unit/assertions.rb +187 -149
- data/lib/test/unit/attribute.rb +71 -2
- data/lib/test/unit/autorunner.rb +65 -32
- data/lib/test/unit/code-snippet-fetcher.rb +7 -7
- data/lib/test/unit/collector/load.rb +8 -13
- data/lib/test/unit/data-sets.rb +116 -0
- data/lib/test/unit/data.rb +121 -12
- data/lib/test/unit/diff.rb +11 -11
- data/lib/test/unit/fixture.rb +3 -0
- data/lib/test/unit/notification.rb +9 -7
- data/lib/test/unit/omission.rb +34 -31
- data/lib/test/unit/pending.rb +12 -11
- data/lib/test/unit/priority.rb +7 -3
- data/lib/test/unit/runner/console.rb +25 -0
- data/lib/test/unit/test-suite-creator.rb +22 -8
- data/lib/test/unit/testcase.rb +270 -182
- data/lib/test/unit/ui/console/testrunner.rb +90 -35
- data/lib/test/unit/ui/emacs/testrunner.rb +5 -5
- data/lib/test/unit/util/observable.rb +2 -2
- data/lib/test/unit/util/output.rb +5 -4
- data/lib/test/unit/util/procwrapper.rb +4 -4
- data/lib/test/unit/version.rb +1 -1
- data/test/collector/test-descendant.rb +4 -0
- data/test/collector/test-load.rb +35 -2
- data/test/collector/test_dir.rb +5 -4
- data/test/collector/test_objectspace.rb +7 -5
- data/test/test-assertions.rb +128 -101
- data/test/test-code-snippet.rb +42 -0
- data/test/test-data.rb +195 -79
- data/test/test-priority.rb +19 -8
- data/test/test-test-case.rb +111 -3
- data/test/test-test-suite.rb +1 -0
- data/test/testunit-test-util.rb +2 -0
- metadata +38 -37
data/test/test-code-snippet.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
1
3
|
require "test-unit"
|
2
4
|
require "testunit-test-util"
|
3
5
|
|
@@ -34,4 +36,44 @@ class TestCodeSnippet < Test::Unit::TestCase
|
|
34
36
|
end
|
35
37
|
end
|
36
38
|
end
|
39
|
+
|
40
|
+
class TestDefaultExternal < self
|
41
|
+
def suppress_warning
|
42
|
+
verbose = $VERBOSE
|
43
|
+
begin
|
44
|
+
$VERBOSE = false
|
45
|
+
yield
|
46
|
+
ensure
|
47
|
+
$VERBOSE = verbose
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
def setup
|
52
|
+
suppress_warning do
|
53
|
+
@default_external = Encoding.default_external
|
54
|
+
end
|
55
|
+
@fetcher = Test::Unit::CodeSnippetFetcher.new
|
56
|
+
end
|
57
|
+
|
58
|
+
def teardown
|
59
|
+
suppress_warning do
|
60
|
+
Encoding.default_external = @default_external
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
def test_windows_31j
|
65
|
+
source = Tempfile.new(["test-code-snippet", ".rb"])
|
66
|
+
source.puts(<<-SOURCE)
|
67
|
+
puts("あいうえお")
|
68
|
+
SOURCE
|
69
|
+
source.flush
|
70
|
+
suppress_warning do
|
71
|
+
Encoding.default_external = "Windows-31J"
|
72
|
+
end
|
73
|
+
assert_equal([
|
74
|
+
[1, "puts(\"あいうえお\")", {:target_line? => false}],
|
75
|
+
],
|
76
|
+
@fetcher.fetch(source.path, 0))
|
77
|
+
end
|
78
|
+
end
|
37
79
|
end
|
data/test/test-data.rb
CHANGED
@@ -46,7 +46,7 @@ class TestData < Test::Unit::TestCase
|
|
46
46
|
end
|
47
47
|
|
48
48
|
class TestDynamicDataSet < TestCalc
|
49
|
-
|
49
|
+
DATA_PROC = lambda do
|
50
50
|
data_set = {}
|
51
51
|
data_set["positive positive"] = {
|
52
52
|
:expected => 3,
|
@@ -60,7 +60,8 @@ class TestData < Test::Unit::TestCase
|
|
60
60
|
}
|
61
61
|
data_set
|
62
62
|
end
|
63
|
-
|
63
|
+
|
64
|
+
data(&DATA_PROC)
|
64
65
|
def test_plus(data)
|
65
66
|
assert_equal(data[:expected],
|
66
67
|
@calc.plus(data[:augend], data[:addend]))
|
@@ -90,6 +91,48 @@ class TestData < Test::Unit::TestCase
|
|
90
91
|
end
|
91
92
|
end
|
92
93
|
end
|
94
|
+
|
95
|
+
class TestMethod < TestCalc
|
96
|
+
def data_test_plus
|
97
|
+
{
|
98
|
+
"positive positive" => {:expected => 4, :augend => 3, :addend => 1},
|
99
|
+
"positive negative" => {:expected => -1, :augend => 1, :addend => -2},
|
100
|
+
}
|
101
|
+
end
|
102
|
+
|
103
|
+
def test_plus(data)
|
104
|
+
assert_equal(data[:expected],
|
105
|
+
@calc.plus(data[:augend], data[:addend]))
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
class TestPatterns < TestCalc
|
110
|
+
data(:x, [-1, 1, 0])
|
111
|
+
data(:y, [-100, 100])
|
112
|
+
data(:z, ["a", "b", "c"])
|
113
|
+
def test_use_data(data)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
class TestPatternsKeep < TestCalc
|
118
|
+
data(:x, [-1, 1, 0], keep: true)
|
119
|
+
data(:y, [-100, 100])
|
120
|
+
data(:z, ["a", "b", "c"], keep: true)
|
121
|
+
def test_use_data(data)
|
122
|
+
end
|
123
|
+
|
124
|
+
def test_use_data_keep(data)
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
class TestPatternsGroup < TestCalc
|
129
|
+
data(:a, [-1, 1, 0], group: 1)
|
130
|
+
data(:b, [:a, :b], group: 1)
|
131
|
+
data(:x, [2, 9], group: :z)
|
132
|
+
data(:y, ["a", "b", "c"], group: :z)
|
133
|
+
def test_use_data(data)
|
134
|
+
end
|
135
|
+
end
|
93
136
|
end
|
94
137
|
|
95
138
|
def setup
|
@@ -109,64 +152,90 @@ class TestData < Test::Unit::TestCase
|
|
109
152
|
data("data set",
|
110
153
|
{
|
111
154
|
:test_case => TestCalc::TestDataSet,
|
112
|
-
:
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
155
|
+
:data_sets => [
|
156
|
+
{
|
157
|
+
"positive positive" => {
|
158
|
+
:expected => 4,
|
159
|
+
:augend => 3,
|
160
|
+
:addend => 1,
|
161
|
+
},
|
162
|
+
"positive negative" => {
|
163
|
+
:expected => -1,
|
164
|
+
:augend => 1,
|
165
|
+
:addend => -2,
|
166
|
+
},
|
167
|
+
},
|
168
|
+
],
|
124
169
|
})
|
125
170
|
data("n-data",
|
126
171
|
{
|
127
172
|
:test_case => TestCalc::TestNData,
|
128
|
-
:
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
173
|
+
:data_sets => [
|
174
|
+
{
|
175
|
+
"positive positive" => {
|
176
|
+
:expected => 4,
|
177
|
+
:augend => 3,
|
178
|
+
:addend => 1,
|
179
|
+
},
|
180
|
+
},
|
181
|
+
{
|
182
|
+
"positive negative" => {
|
183
|
+
:expected => -1,
|
184
|
+
:augend => 1,
|
185
|
+
:addend => -2,
|
186
|
+
},
|
187
|
+
},
|
188
|
+
],
|
142
189
|
})
|
143
190
|
data("dynamic-data-set",
|
144
191
|
{
|
145
192
|
:test_case => TestCalc::TestDynamicDataSet,
|
146
|
-
:
|
193
|
+
:data_sets => [TestCalc::TestDynamicDataSet::DATA_PROC],
|
147
194
|
})
|
148
195
|
data("load-data-set",
|
149
196
|
{
|
150
197
|
:test_case => TestCalc::TestLoadDataSet,
|
151
|
-
:
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
198
|
+
:data_sets => [
|
199
|
+
{
|
200
|
+
"positive positive" => {
|
201
|
+
"expected" => 4,
|
202
|
+
"augend" => 3,
|
203
|
+
"addend" => 1,
|
204
|
+
},
|
205
|
+
},
|
206
|
+
{
|
207
|
+
"positive negative" => {
|
208
|
+
"expected" => -1,
|
209
|
+
"augend" => 1,
|
210
|
+
"addend" => -2,
|
211
|
+
},
|
212
|
+
},
|
213
|
+
],
|
214
|
+
})
|
166
215
|
def test_data(data)
|
167
216
|
test_plus = data[:test_case].new("test_plus")
|
168
|
-
|
169
|
-
|
217
|
+
data_sets = Test::Unit::DataSets.new
|
218
|
+
data[:data_sets].each do |data_set|
|
219
|
+
data_sets.add(data_set)
|
220
|
+
end
|
221
|
+
assert_equal(data_sets, test_plus[:data])
|
222
|
+
end
|
223
|
+
|
224
|
+
def test_data_patterns
|
225
|
+
test = TestCalc::TestPatterns.new("test_use_data")
|
226
|
+
data_sets = Test::Unit::DataSets.new
|
227
|
+
data_sets << [:x, [-1, 1, 0]]
|
228
|
+
data_sets << [:y, [-100, 100]]
|
229
|
+
data_sets << [:z, ["a", "b", "c"]]
|
230
|
+
assert_equal(data_sets, test[:data])
|
231
|
+
end
|
232
|
+
|
233
|
+
def test_data_patterns_keep
|
234
|
+
test = TestCalc::TestPatternsKeep.new("test_use_data_keep")
|
235
|
+
data_sets = Test::Unit::DataSets.new
|
236
|
+
data_sets.add([:x, [-1, 1, 0]], {keep: true})
|
237
|
+
data_sets.add([:z, ["a", "b", "c"]], {keep: true})
|
238
|
+
assert_equal(data_sets, test[:data])
|
170
239
|
end
|
171
240
|
|
172
241
|
data("data set" => TestCalc::TestDataSet,
|
@@ -180,11 +249,58 @@ class TestData < Test::Unit::TestCase
|
|
180
249
|
suite.tests.collect {|test| test.name}.sort)
|
181
250
|
end
|
182
251
|
|
252
|
+
def test_suite_patterns
|
253
|
+
test_case = TestCalc::TestPatterns
|
254
|
+
suite = test_case.suite
|
255
|
+
assert_equal([
|
256
|
+
"test_use_data[x: -1, y: -100, z: \"a\"](#{test_case.name})",
|
257
|
+
"test_use_data[x: -1, y: -100, z: \"b\"](#{test_case.name})",
|
258
|
+
"test_use_data[x: -1, y: -100, z: \"c\"](#{test_case.name})",
|
259
|
+
"test_use_data[x: -1, y: 100, z: \"a\"](#{test_case.name})",
|
260
|
+
"test_use_data[x: -1, y: 100, z: \"b\"](#{test_case.name})",
|
261
|
+
"test_use_data[x: -1, y: 100, z: \"c\"](#{test_case.name})",
|
262
|
+
"test_use_data[x: 0, y: -100, z: \"a\"](#{test_case.name})",
|
263
|
+
"test_use_data[x: 0, y: -100, z: \"b\"](#{test_case.name})",
|
264
|
+
"test_use_data[x: 0, y: -100, z: \"c\"](#{test_case.name})",
|
265
|
+
"test_use_data[x: 0, y: 100, z: \"a\"](#{test_case.name})",
|
266
|
+
"test_use_data[x: 0, y: 100, z: \"b\"](#{test_case.name})",
|
267
|
+
"test_use_data[x: 0, y: 100, z: \"c\"](#{test_case.name})",
|
268
|
+
"test_use_data[x: 1, y: -100, z: \"a\"](#{test_case.name})",
|
269
|
+
"test_use_data[x: 1, y: -100, z: \"b\"](#{test_case.name})",
|
270
|
+
"test_use_data[x: 1, y: -100, z: \"c\"](#{test_case.name})",
|
271
|
+
"test_use_data[x: 1, y: 100, z: \"a\"](#{test_case.name})",
|
272
|
+
"test_use_data[x: 1, y: 100, z: \"b\"](#{test_case.name})",
|
273
|
+
"test_use_data[x: 1, y: 100, z: \"c\"](#{test_case.name})",
|
274
|
+
],
|
275
|
+
suite.tests.collect {|test| test.name}.sort)
|
276
|
+
end
|
277
|
+
|
278
|
+
def test_suite_patterns_group
|
279
|
+
test_case = TestCalc::TestPatternsGroup
|
280
|
+
suite = test_case.suite
|
281
|
+
assert_equal([
|
282
|
+
"test_use_data[group: 1, a: -1, b: :a](#{test_case.name})",
|
283
|
+
"test_use_data[group: 1, a: -1, b: :b](#{test_case.name})",
|
284
|
+
"test_use_data[group: 1, a: 0, b: :a](#{test_case.name})",
|
285
|
+
"test_use_data[group: 1, a: 0, b: :b](#{test_case.name})",
|
286
|
+
"test_use_data[group: 1, a: 1, b: :a](#{test_case.name})",
|
287
|
+
"test_use_data[group: 1, a: 1, b: :b](#{test_case.name})",
|
288
|
+
"test_use_data[group: :z, x: 2, y: \"a\"](#{test_case.name})",
|
289
|
+
"test_use_data[group: :z, x: 2, y: \"b\"](#{test_case.name})",
|
290
|
+
"test_use_data[group: :z, x: 2, y: \"c\"](#{test_case.name})",
|
291
|
+
"test_use_data[group: :z, x: 9, y: \"a\"](#{test_case.name})",
|
292
|
+
"test_use_data[group: :z, x: 9, y: \"b\"](#{test_case.name})",
|
293
|
+
"test_use_data[group: :z, x: 9, y: \"c\"](#{test_case.name})",
|
294
|
+
],
|
295
|
+
suite.tests.collect {|test| test.name}.sort)
|
296
|
+
end
|
297
|
+
|
183
298
|
data("data set" => TestCalc::TestDataSet,
|
184
299
|
"n-data" => TestCalc::TestNData,
|
185
300
|
"dynamic-data-set" => TestCalc::TestDynamicDataSet,
|
186
301
|
"load-data-set" => TestCalc::TestLoadDataSet,
|
187
|
-
"superclass" => TestCalc::TestSuperclass
|
302
|
+
"superclass" => TestCalc::TestSuperclass,
|
303
|
+
"method" => TestCalc::TestMethod)
|
188
304
|
def test_run(test_case)
|
189
305
|
result = _run_test(test_case)
|
190
306
|
assert_equal("2 tests, 2 assertions, 0 failures, 0 errors, 0 pendings, " \
|
@@ -249,20 +365,20 @@ class TestData < Test::Unit::TestCase
|
|
249
365
|
"tsv" => "header.tsv")
|
250
366
|
def test_normal(file_name)
|
251
367
|
self.class.load_data(fixture_file_path(file_name))
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
368
|
+
data_sets = Test::Unit::DataSets.new
|
369
|
+
data_sets << {
|
370
|
+
"empty string" => {
|
371
|
+
"expected" => true,
|
372
|
+
"target" => ""
|
373
|
+
}
|
374
|
+
}
|
375
|
+
data_sets << {
|
376
|
+
"plain string" => {
|
377
|
+
"expected" => false,
|
378
|
+
"target" => "hello"
|
379
|
+
}
|
380
|
+
}
|
381
|
+
assert_equal(data_sets,
|
266
382
|
self.class.current_attribute(:data)[:value])
|
267
383
|
end
|
268
384
|
|
@@ -270,20 +386,20 @@ class TestData < Test::Unit::TestCase
|
|
270
386
|
"tsv" => "header-label.tsv")
|
271
387
|
def test_label(file_name)
|
272
388
|
self.class.load_data(fixture_file_path(file_name))
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
389
|
+
data_sets = Test::Unit::DataSets.new
|
390
|
+
data_sets << {
|
391
|
+
"upper case" => {
|
392
|
+
"expected" => "HELLO",
|
393
|
+
"label" => "HELLO"
|
394
|
+
}
|
395
|
+
}
|
396
|
+
data_sets << {
|
397
|
+
"lower case" => {
|
398
|
+
"expected" => "Hello",
|
399
|
+
"label" => "hello"
|
400
|
+
}
|
401
|
+
}
|
402
|
+
assert_equal(data_sets,
|
287
403
|
self.class.current_attribute(:data)[:value])
|
288
404
|
end
|
289
405
|
end
|
@@ -292,10 +408,10 @@ class TestData < Test::Unit::TestCase
|
|
292
408
|
"tsv" => "no-header.tsv")
|
293
409
|
def test_without_header(file_name)
|
294
410
|
self.class.load_data(fixture_file_path(file_name))
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
411
|
+
data_sets = Test::Unit::DataSets.new
|
412
|
+
data_sets << {"empty string" => [true, ""]}
|
413
|
+
data_sets << {"plain string" => [false, "hello"]}
|
414
|
+
assert_equal(data_sets,
|
299
415
|
self.class.current_attribute(:data)[:value])
|
300
416
|
end
|
301
417
|
end
|
data/test/test-priority.rb
CHANGED
@@ -104,7 +104,7 @@ class TestUnitPriority < Test::Unit::TestCase
|
|
104
104
|
|
105
105
|
class TestClassName < self
|
106
106
|
def test_colon
|
107
|
-
assert_escaped_name("
|
107
|
+
assert_escaped_name("Test_colon__colon_Priority", "Test::Priority")
|
108
108
|
end
|
109
109
|
|
110
110
|
def test_space
|
@@ -119,6 +119,18 @@ class TestUnitPriority < Test::Unit::TestCase
|
|
119
119
|
assert_escaped_name("test_priority", "test\/priority")
|
120
120
|
end
|
121
121
|
|
122
|
+
def test_question
|
123
|
+
assert_escaped_name("#question.predicate", "#question?")
|
124
|
+
end
|
125
|
+
|
126
|
+
def test_exclamation
|
127
|
+
assert_escaped_name("#exclamation.destructive", "#exclamation!")
|
128
|
+
end
|
129
|
+
|
130
|
+
def test_equal
|
131
|
+
assert_escaped_name("#equal.equal", "#equal=")
|
132
|
+
end
|
133
|
+
|
122
134
|
def assert_escaped_name(expected, class_name)
|
123
135
|
checker = Checker.new(nil)
|
124
136
|
escaped_class_name = checker.send(:escape_class_name, class_name)
|
@@ -148,19 +160,18 @@ class TestUnitPriority < Test::Unit::TestCase
|
|
148
160
|
end
|
149
161
|
|
150
162
|
def test_question
|
151
|
-
assert_escaped_name("
|
163
|
+
assert_escaped_name("test_colon__#question.predicate_case",
|
164
|
+
"test: #question? case")
|
152
165
|
end
|
153
166
|
|
154
167
|
def test_exclamation
|
155
|
-
assert_escaped_name("
|
168
|
+
assert_escaped_name("test_colon__#exclamation.destructive_case",
|
169
|
+
"test: #exclamation! case")
|
156
170
|
end
|
157
171
|
|
158
172
|
def test_equal
|
159
|
-
assert_escaped_name("
|
160
|
-
|
161
|
-
|
162
|
-
def test_colon_and_space
|
163
|
-
assert_escaped_name("test_colon__have_space", "test: have space")
|
173
|
+
assert_escaped_name("test_colon__#equal.equal_case",
|
174
|
+
"test: #equal= case")
|
164
175
|
end
|
165
176
|
|
166
177
|
def assert_escaped_name(expected, test_method_name)
|
data/test/test-test-case.rb
CHANGED
@@ -465,9 +465,6 @@ module Test
|
|
465
465
|
end
|
466
466
|
end
|
467
467
|
|
468
|
-
assert_equal(["test_1", "test_a", "test_z"],
|
469
|
-
test_case.suite.tests.collect {|test| test.method_name})
|
470
|
-
|
471
468
|
test_case.test_order = :defined
|
472
469
|
assert_equal(["test_z", "test_1", "test_a"],
|
473
470
|
test_case.suite.tests.collect {|test| test.method_name})
|
@@ -513,6 +510,8 @@ module Test
|
|
513
510
|
|
514
511
|
def test_redefine_method
|
515
512
|
test_case = Class.new(Test::Unit::TestCase) do
|
513
|
+
self.test_order = :alphabetic
|
514
|
+
|
516
515
|
def test_name
|
517
516
|
end
|
518
517
|
alias_method :test_name2, :test_name
|
@@ -543,6 +542,24 @@ module Test
|
|
543
542
|
assert_predicate(test, :valid?)
|
544
543
|
end
|
545
544
|
|
545
|
+
def test_data_driven_test_without_parameter
|
546
|
+
test_case = Class.new(TestCase) do
|
547
|
+
data("label" => "value")
|
548
|
+
def test_without_parameter
|
549
|
+
assert_equal("value", data)
|
550
|
+
end
|
551
|
+
end
|
552
|
+
|
553
|
+
suite = test_case.suite
|
554
|
+
assert_equal(["test_without_parameter"],
|
555
|
+
suite.tests.collect {|test| test.method_name})
|
556
|
+
result = TestResult.new
|
557
|
+
suite.run(result) {}
|
558
|
+
assert_equal("1 tests, 1 assertions, 0 failures, " +
|
559
|
+
"0 errors, 0 pendings, 0 omissions, 0 notifications",
|
560
|
+
result.summary)
|
561
|
+
end
|
562
|
+
|
546
563
|
private
|
547
564
|
def check(message, passed)
|
548
565
|
add_assertion
|
@@ -735,6 +752,21 @@ module Test
|
|
735
752
|
child_test_case.test_defined?(:line => line_child),
|
736
753
|
])
|
737
754
|
end
|
755
|
+
|
756
|
+
def test_with_setup
|
757
|
+
line = nil
|
758
|
+
test_case = Class.new(TestCase) do
|
759
|
+
setup do
|
760
|
+
end
|
761
|
+
|
762
|
+
line = __LINE__; test "with setup" do
|
763
|
+
end
|
764
|
+
end
|
765
|
+
assert do
|
766
|
+
test_case.test_defined?(:line => line,
|
767
|
+
:method_name => "test: with setup")
|
768
|
+
end
|
769
|
+
end
|
738
770
|
end
|
739
771
|
end
|
740
772
|
|
@@ -980,6 +1012,8 @@ module Test
|
|
980
1012
|
@parent_test_case = Class.new(TestCase) do
|
981
1013
|
extend CallLogger
|
982
1014
|
|
1015
|
+
self.test_order = :alphabetic
|
1016
|
+
|
983
1017
|
class << self
|
984
1018
|
def startup
|
985
1019
|
called << :startup_parent
|
@@ -1164,6 +1198,80 @@ module Test
|
|
1164
1198
|
assert_equal([:startup, :shutdown],
|
1165
1199
|
test_case.called)
|
1166
1200
|
end
|
1201
|
+
|
1202
|
+
class TestName < self
|
1203
|
+
def test_no_data
|
1204
|
+
test_case = Class.new(TestCase) do
|
1205
|
+
class << self
|
1206
|
+
def name
|
1207
|
+
"TestCase"
|
1208
|
+
end
|
1209
|
+
end
|
1210
|
+
|
1211
|
+
def test_nothing
|
1212
|
+
end
|
1213
|
+
end
|
1214
|
+
|
1215
|
+
test = test_case.new("test_nothing")
|
1216
|
+
assert_equal("test_nothing(TestCase)",
|
1217
|
+
test.name)
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
def test_data
|
1221
|
+
test_case = Class.new(TestCase) do
|
1222
|
+
class << self
|
1223
|
+
def name
|
1224
|
+
"TestCase"
|
1225
|
+
end
|
1226
|
+
end
|
1227
|
+
|
1228
|
+
def test_nothing
|
1229
|
+
end
|
1230
|
+
end
|
1231
|
+
|
1232
|
+
test = test_case.new("test_nothing")
|
1233
|
+
test.assign_test_data("(nil)", nil)
|
1234
|
+
assert_equal("test_nothing[(nil)](TestCase)",
|
1235
|
+
test.name)
|
1236
|
+
end
|
1237
|
+
end
|
1238
|
+
|
1239
|
+
class TestLocalName < self
|
1240
|
+
def test_no_data
|
1241
|
+
test_case = Class.new(TestCase) do
|
1242
|
+
class << self
|
1243
|
+
def name
|
1244
|
+
"TestCase"
|
1245
|
+
end
|
1246
|
+
end
|
1247
|
+
|
1248
|
+
def test_nothing
|
1249
|
+
end
|
1250
|
+
end
|
1251
|
+
|
1252
|
+
test = test_case.new("test_nothing")
|
1253
|
+
assert_equal("test_nothing",
|
1254
|
+
test.local_name)
|
1255
|
+
end
|
1256
|
+
|
1257
|
+
def test_data
|
1258
|
+
test_case = Class.new(TestCase) do
|
1259
|
+
class << self
|
1260
|
+
def name
|
1261
|
+
"TestCase"
|
1262
|
+
end
|
1263
|
+
end
|
1264
|
+
|
1265
|
+
def test_nothing
|
1266
|
+
end
|
1267
|
+
end
|
1268
|
+
|
1269
|
+
test = test_case.new("test_nothing")
|
1270
|
+
test.assign_test_data("(nil)", nil)
|
1271
|
+
assert_equal("test_nothing[(nil)]",
|
1272
|
+
test.local_name)
|
1273
|
+
end
|
1274
|
+
end
|
1167
1275
|
end
|
1168
1276
|
end
|
1169
1277
|
end
|