assert 2.18.3 → 2.18.4

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 (41) hide show
  1. checksums.yaml +4 -4
  2. data/lib/assert/context.rb +5 -2
  3. data/lib/assert/context/let_dsl.rb +3 -3
  4. data/lib/assert/context/subject_dsl.rb +23 -24
  5. data/lib/assert/version.rb +1 -1
  6. data/test/system/stub_tests.rb +101 -117
  7. data/test/system/test_tests.rb +21 -33
  8. data/test/unit/assert_tests.rb +3 -1
  9. data/test/unit/assertions/assert_block_tests.rb +6 -8
  10. data/test/unit/assertions/assert_empty_tests.rb +10 -12
  11. data/test/unit/assertions/assert_equal_tests.rb +12 -18
  12. data/test/unit/assertions/assert_file_exists_tests.rb +10 -12
  13. data/test/unit/assertions/assert_includes_tests.rb +10 -12
  14. data/test/unit/assertions/assert_instance_of_tests.rb +10 -12
  15. data/test/unit/assertions/assert_kind_of_tests.rb +10 -12
  16. data/test/unit/assertions/assert_match_tests.rb +10 -12
  17. data/test/unit/assertions/assert_nil_tests.rb +10 -12
  18. data/test/unit/assertions/assert_raises_tests.rb +6 -8
  19. data/test/unit/assertions/assert_respond_to_tests.rb +10 -12
  20. data/test/unit/assertions/assert_same_tests.rb +16 -22
  21. data/test/unit/assertions/assert_true_false_tests.rb +20 -24
  22. data/test/unit/assertions_tests.rb +1 -2
  23. data/test/unit/config_helpers_tests.rb +8 -4
  24. data/test/unit/config_tests.rb +7 -2
  25. data/test/unit/context/setup_dsl_tests.rb +3 -3
  26. data/test/unit/context/subject_dsl_tests.rb +1 -2
  27. data/test/unit/context/suite_dsl_tests.rb +1 -2
  28. data/test/unit/context_info_tests.rb +9 -2
  29. data/test/unit/context_tests.rb +65 -73
  30. data/test/unit/default_suite_tests.rb +8 -2
  31. data/test/unit/factory_tests.rb +3 -1
  32. data/test/unit/file_line_tests.rb +8 -8
  33. data/test/unit/macro_tests.rb +10 -5
  34. data/test/unit/result_tests.rb +34 -45
  35. data/test/unit/runner_tests.rb +10 -10
  36. data/test/unit/suite_tests.rb +9 -9
  37. data/test/unit/test_tests.rb +32 -39
  38. data/test/unit/utils_tests.rb +3 -1
  39. data/test/unit/view_helpers_tests.rb +6 -7
  40. data/test/unit/view_tests.rb +4 -3
  41. metadata +2 -2
@@ -4,7 +4,9 @@ require "assert/file_line"
4
4
  class Assert::FileLine
5
5
  class UnitTests < Assert::Context
6
6
  desc "Assert::FileLine"
7
- subject { Assert::FileLine }
7
+ subject { unit_class }
8
+
9
+ let(:unit_class) { Assert::FileLine }
8
10
 
9
11
  let(:file1) { "#{Factory.path}_tests.rb" }
10
12
  let(:line1) { Factory.integer.to_s }
@@ -43,9 +45,7 @@ class Assert::FileLine
43
45
 
44
46
  class InitTests < UnitTests
45
47
  desc "when init"
46
- subject { file_line1 }
47
-
48
- let(:file_line1) { Assert::FileLine.new(file1, line1) }
48
+ subject { unit_class.new(file1, line1) }
49
49
 
50
50
  should have_readers :file, :line
51
51
 
@@ -53,11 +53,11 @@ class Assert::FileLine
53
53
  assert_that(subject.file).equals(file1)
54
54
  assert_that(subject.line).equals(line1)
55
55
 
56
- file_line = Assert::FileLine.new(file1)
56
+ file_line = unit_class.new(file1)
57
57
  assert_that(file_line.file).equals(file1)
58
58
  assert_that(file_line.line).equals("")
59
59
 
60
- file_line = Assert::FileLine.new
60
+ file_line = unit_class.new
61
61
  assert_that(file_line.file).equals("")
62
62
  assert_that(file_line.line).equals("")
63
63
  end
@@ -67,8 +67,8 @@ class Assert::FileLine
67
67
  end
68
68
 
69
69
  should "know if it is equal to another file line" do
70
- yes = Assert::FileLine.new(file1, line1)
71
- no = Assert::FileLine.new("#{Factory.path}_tests.rb", Factory.integer.to_s)
70
+ yes = unit_class.new(file1, line1)
71
+ no = unit_class.new("#{Factory.path}_tests.rb", Factory.integer.to_s)
72
72
 
73
73
  assert_that(subject).equals(yes)
74
74
  assert_not_equal no, subject
@@ -4,9 +4,14 @@ require "assert/macro"
4
4
  class Assert::Macro
5
5
  class UnitTests < Assert::Context
6
6
  desc "Assert::Macro"
7
- subject { macro1 }
7
+ subject { unit_class }
8
8
 
9
- let(:macro1) { Assert::Macro.new {} }
9
+ let(:unit_class) { Assert::Macro }
10
+ end
11
+
12
+ class InitTests < UnitTests
13
+ desc "when init"
14
+ subject { unit_class.new {} }
10
15
 
11
16
  should "have an accessor for its (optional) name" do
12
17
  assert_that(subject).responds_to(:name)
@@ -14,11 +19,11 @@ class Assert::Macro
14
19
  end
15
20
 
16
21
  should "default its name if no given" do
17
- assert_that((Assert::Macro.new {}).name).equals("run this macro")
22
+ assert_that((unit_class.new {}).name).equals("run this macro")
18
23
  end
19
24
 
20
25
  should "initialize with a given name" do
21
- assert_that((Assert::Macro.new("test") {}).name).equals("test")
26
+ assert_that((unit_class.new("test") {}).name).equals("test")
22
27
  end
23
28
 
24
29
  should "be a Proc" do
@@ -26,7 +31,7 @@ class Assert::Macro
26
31
  end
27
32
 
28
33
  should "complain if you create a macro without a block" do
29
- assert_that(-> { Assert::Macro.new }).raises(ArgumentError)
34
+ assert_that(-> { unit_class.new }).raises(ArgumentError)
30
35
  end
31
36
  end
32
37
 
@@ -6,7 +6,9 @@ require "assert/file_line"
6
6
  module Assert::Result
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::Result"
9
- subject { Assert::Result }
9
+ subject { unit_class }
10
+
11
+ let(:unit_class) { Assert::Result }
10
12
 
11
13
  let(:test1) { Factory.test("a test name") }
12
14
 
@@ -32,9 +34,9 @@ module Assert::Result
32
34
  end
33
35
  end
34
36
 
35
- class BaseTests < UnitTests
36
- desc "Base"
37
- subject { result1 }
37
+ class InitBaseTests < UnitTests
38
+ desc "Base when init"
39
+ subject { Base.new(given_data1) }
38
40
 
39
41
  let(:given_data1) {
40
42
  {
@@ -47,7 +49,6 @@ module Assert::Result
47
49
  :backtrace => Backtrace.new(Factory.backtrace)
48
50
  }
49
51
  }
50
- let(:result1) { Base.new(given_data1) }
51
52
 
52
53
  should have_cmeths :type, :name, :for_test
53
54
  should have_imeths :type, :name, :test_name, :test_file_line
@@ -226,11 +227,9 @@ module Assert::Result
226
227
  end
227
228
  end
228
229
 
229
- class PassTests < UnitTests
230
- desc "Pass"
231
- subject { result1 }
232
-
233
- let(:result1) { Pass.new({}) }
230
+ class InitPassTests < UnitTests
231
+ desc "Pass when init"
232
+ subject { Pass.new({}) }
234
233
 
235
234
  should "know its type/name" do
236
235
  assert_that(subject.type).equals(:pass)
@@ -239,11 +238,9 @@ module Assert::Result
239
238
  end
240
239
  end
241
240
 
242
- class IgnoreTests < UnitTests
243
- desc "Ignore"
244
- subject { result1 }
245
-
246
- let(:result1) { Ignore.new({}) }
241
+ class InitIgnoreTests < UnitTests
242
+ desc "Ignore when init"
243
+ subject { Ignore.new({}) }
247
244
 
248
245
  should "know its type/name" do
249
246
  assert_that(subject.type).equals(:ignore)
@@ -252,8 +249,8 @@ module Assert::Result
252
249
  end
253
250
  end
254
251
 
255
- class HaltingTestResultErrorTests < UnitTests
256
- desc "HaltingTestResultError"
252
+ class InitHaltingTestResultErrorTests < UnitTests
253
+ desc "HaltingTestResultError when init"
257
254
  subject { HaltingTestResultError.new }
258
255
 
259
256
  should have_accessors :assert_with_bt
@@ -263,20 +260,18 @@ module Assert::Result
263
260
  end
264
261
  end
265
262
 
266
- class TestFailureTests < UnitTests
267
- desc "TestFailure"
268
- subject { TestFailure }
263
+ class InitTestFailureTests < UnitTests
264
+ desc "TestFailure when init"
265
+ subject { TestFailure.new }
269
266
 
270
267
  should "be a halting test result error" do
271
- assert_that(subject.new).is_kind_of(HaltingTestResultError)
268
+ assert_that(subject).is_kind_of(HaltingTestResultError)
272
269
  end
273
270
  end
274
271
 
275
- class FailTests < UnitTests
276
- desc "Fail"
277
- subject { result1 }
278
-
279
- let(:result1) { Fail.new({}) }
272
+ class InitFailTests < UnitTests
273
+ desc "Fail when init"
274
+ subject { Fail.new({}) }
280
275
 
281
276
  should "know its type/name" do
282
277
  assert_that(subject.type).equals(:fail)
@@ -311,20 +306,18 @@ module Assert::Result
311
306
  end
312
307
  end
313
308
 
314
- class TestSkippedTests < UnitTests
315
- desc "TestSkipped"
316
- subject { TestSkipped }
309
+ class InitTestSkippedTests < UnitTests
310
+ desc "TestSkipped when init"
311
+ subject { TestSkipped.new }
317
312
 
318
313
  should "be a halting test result error" do
319
- assert_that(subject.new).is_kind_of(HaltingTestResultError)
314
+ assert_that(subject).is_kind_of(HaltingTestResultError)
320
315
  end
321
316
  end
322
317
 
323
- class SkipTests < UnitTests
324
- desc "Skip"
325
- subject { result1 }
326
-
327
- let(:result1) { Skip.new({}) }
318
+ class InitSkipTests < UnitTests
319
+ desc "Skip when init"
320
+ subject { Skip.new({}) }
328
321
 
329
322
  should "know its type/name" do
330
323
  assert_that(subject.type).equals(:skip)
@@ -359,11 +352,9 @@ module Assert::Result
359
352
  end
360
353
  end
361
354
 
362
- class ErrorTests < UnitTests
363
- desc "Error"
364
- subject { result1 }
365
-
366
- let(:result1) { Error.new({}) }
355
+ class InitErrorTests < UnitTests
356
+ desc "Error when init"
357
+ subject { Error.new({}) }
367
358
 
368
359
  should "know its class-level type/name" do
369
360
  assert_that(subject.class.type).equals(:error)
@@ -388,11 +379,9 @@ module Assert::Result
388
379
  end
389
380
  end
390
381
 
391
- class BacktraceTests < UnitTests
392
- desc "Backtrace"
393
- subject { backtrace1 }
394
-
395
- let(:backtrace1) { Backtrace.new(Factory.backtrace) }
382
+ class InitBacktraceTests < UnitTests
383
+ desc "Backtrace when init"
384
+ subject { Backtrace.new(Factory.backtrace) }
396
385
 
397
386
  should have_cmeths :parse, :to_s
398
387
  should have_imeths :filtered
@@ -10,7 +10,9 @@ require "assert/view"
10
10
  class Assert::Runner
11
11
  class UnitTests < Assert::Context
12
12
  desc "Assert::Runner"
13
- subject { Assert::Runner }
13
+ subject { unit_class }
14
+
15
+ let(:unit_class) { Assert::Runner }
14
16
 
15
17
  should "include the config helpers" do
16
18
  assert_that(subject).includes(Assert::ConfigHelpers)
@@ -19,7 +21,7 @@ class Assert::Runner
19
21
 
20
22
  class InitTests < UnitTests
21
23
  desc "when init"
22
- subject { runner1 }
24
+ subject { unit_class.new(config1) }
23
25
 
24
26
  setup do
25
27
  config1.suite Assert::DefaultSuite.new(config1)
@@ -27,7 +29,6 @@ class Assert::Runner
27
29
  end
28
30
 
29
31
  let(:config1) { Factory.modes_off_config }
30
- let(:runner1) { Assert::Runner.new(config1) }
31
32
 
32
33
  should have_readers :config
33
34
  should have_imeths :runner, :run
@@ -46,6 +47,7 @@ class Assert::Runner
46
47
 
47
48
  class RunTests < InitTests
48
49
  desc "and run"
50
+ subject { runner_class1.new(config1) }
49
51
 
50
52
  setup do
51
53
  @view_output = ""
@@ -57,26 +59,24 @@ class Assert::Runner
57
59
  config1.view view_class.new(config1, StringIO.new(@view_output, "w+"))
58
60
  config1.suite.on_test(test1)
59
61
 
60
- @result = subject.run
62
+ @result_count = subject.run
61
63
  end
62
64
 
63
- let(:runner_class1) { Class.new(Assert::Runner) { include CallbackMixin } }
65
+ let(:runner_class1) { Class.new(unit_class) { include CallbackMixin } }
64
66
  let(:ci1) { Factory.context_info(Factory.modes_off_context_class) }
65
67
  let(:test1) { Factory.test("should pass", ci1){ assert(1==1) } }
66
- let(:runner1) { runner_class1.new(config1) }
67
68
 
68
69
  should "return the fail+error result count as an integer exit code" do
69
- assert_that(@result).equals(0)
70
+ assert_that(@result_count).equals(0)
70
71
 
71
72
  fail_count = Factory.integer
72
73
  error_count = Factory.integer
73
74
  Assert.stub(subject, :fail_result_count){ fail_count }
74
75
  Assert.stub(subject, :error_result_count){ error_count }
75
76
  Assert.stub(test1, :run){ } # no-op
76
- result = runner1.run
77
+ result_count = subject.run
77
78
 
78
- exp = fail_count + error_count
79
- assert_that(result).equals(exp)
79
+ assert_that(result_count).equals(fail_count + error_count)
80
80
  end
81
81
 
82
82
  should "run all callbacks on itself, the suite and the view" do
@@ -6,10 +6,11 @@ require "assert/test"
6
6
  require "test/support/inherited_stuff"
7
7
 
8
8
  class Assert::Suite
9
-
10
9
  class UnitTests < Assert::Context
11
10
  desc "Assert::Suite"
12
- subject { Assert::Suite }
11
+ subject { unit_class }
12
+
13
+ let(:unit_class) { Assert::Suite }
13
14
 
14
15
  should "include the config helpers" do
15
16
  assert_that(subject).includes(Assert::ConfigHelpers)
@@ -23,10 +24,9 @@ class Assert::Suite
23
24
 
24
25
  class InitTests < UnitTests
25
26
  desc "when init"
26
- subject { suite1 }
27
+ subject { unit_class.new(config1) }
27
28
 
28
29
  let(:config1) { Factory.modes_off_config }
29
- let(:suite1) { Assert::Suite.new(config1) }
30
30
 
31
31
  should have_readers :config, :test_methods, :setups, :teardowns
32
32
  should have_accessors :start_time, :end_time
@@ -84,8 +84,8 @@ class Assert::Suite
84
84
 
85
85
  should "add setup procs" do
86
86
  status = nil
87
- suite1.setup{ status = "setups" }
88
- suite1.startup{ status += " have been run" }
87
+ subject.setup{ status = "setups" }
88
+ subject.startup{ status += " have been run" }
89
89
 
90
90
  assert_that(subject.setups.count).equals(2)
91
91
  subject.setups.each(&:call)
@@ -94,8 +94,8 @@ class Assert::Suite
94
94
 
95
95
  should "add teardown procs" do
96
96
  status = nil
97
- suite1.teardown{ status = "teardowns" }
98
- suite1.shutdown{ status += " have been run" }
97
+ subject.teardown{ status = "teardowns" }
98
+ subject.shutdown{ status += " have been run" }
99
99
 
100
100
  assert_that(subject.teardowns.count).equals(2)
101
101
  subject.teardowns.each(&:call)
@@ -107,7 +107,7 @@ class Assert::Suite
107
107
  desc "with tests loaded"
108
108
 
109
109
  setup do
110
- tests1.each{ |test| suite1.on_test(test) }
110
+ tests1.each{ |test| subject.on_test(test) }
111
111
  end
112
112
 
113
113
  let(:ci1) { proc{ Factory.context_info(Factory.modes_off_context_class) } }
@@ -8,7 +8,9 @@ require "assert/result"
8
8
  class Assert::Test
9
9
  class UnitTests < Assert::Context
10
10
  desc "Assert::Test"
11
- subject { Assert::Test }
11
+ subject { unit_class }
12
+
13
+ let(:unit_class) { Assert::Test }
12
14
 
13
15
  let(:context_class1) { Factory.modes_off_context_class { desc "context class" } }
14
16
  let(:context_info1) { Factory.context_info(context_class1) }
@@ -68,7 +70,7 @@ class Assert::Test
68
70
 
69
71
  class InitWithDataTests < UnitTests
70
72
  desc "when init with data"
71
- subject { test1 }
73
+ subject { unit_class.new(meta_data1.merge(run_data1)) }
72
74
 
73
75
  let(:file_line1) { Assert::FileLine.new(Factory.string, Factory.integer.to_s) }
74
76
  let(:meta_data1) {
@@ -86,7 +88,6 @@ class Assert::Test
86
88
  :code => test_code1
87
89
  }
88
90
  }
89
- let(:test1) { Assert::Test.new(meta_data1.merge(run_data1)) }
90
91
 
91
92
  should have_imeths :file_line, :file_name, :line_num
92
93
  should have_imeths :name, :output, :run_time
@@ -104,7 +105,7 @@ class Assert::Test
104
105
  end
105
106
 
106
107
  should "default its attrs" do
107
- test = Assert::Test.new
108
+ test = unit_class.new
108
109
 
109
110
  assert_that(test.file_line).equals(Assert::FileLine.parse(""))
110
111
  assert_that(test.name).equals("")
@@ -137,7 +138,13 @@ class Assert::Test
137
138
  class PassFailIgnoreHandlingTests < UnitTests
138
139
  include Assert::Test::TestHelpers
139
140
 
140
- subject { test1 }
141
+ subject {
142
+ Factory.test("pass fail ignore test", context_info1) do
143
+ ignore("something")
144
+ assert(true)
145
+ assert(false)
146
+ end
147
+ }
141
148
 
142
149
  setup do
143
150
  subject.context_class.setup do
@@ -153,14 +160,6 @@ class Assert::Test
153
160
  subject.run(&test_run_callback)
154
161
  end
155
162
 
156
- let(:test1) {
157
- Factory.test("pass fail ignore test", context_info1) do
158
- ignore("something")
159
- assert(true)
160
- assert(false)
161
- end
162
- }
163
-
164
163
  should "capture results in the test and any setups/teardowns" do
165
164
  assert_that(test_run_results.size).equals(9)
166
165
  test_run_results.each do |result|
@@ -336,70 +335,64 @@ class Assert::Test
336
335
 
337
336
  class ComparingTests < UnitTests
338
337
  desc "<=> another test"
339
- subject { test1 }
340
-
341
- let(:test1) { Factory.test("mmm") }
338
+ subject { Factory.test("mmm") }
342
339
 
343
340
  should "return 1 with a test named 'aaa' (greater than it)" do
344
- result = test1 <=> Factory.test("aaa")
345
- assert_that(result).equals(1)
341
+ assert_that(subject <=> Factory.test("aaa")).equals(1)
346
342
  end
347
343
 
348
344
  should "return 0 with a test named the same" do
349
- result = test1 <=> Factory.test(test1.name)
350
- assert_that(result).equals(0)
345
+ assert_that(subject <=> Factory.test(subject.name)).equals(0)
351
346
  end
352
347
 
353
348
  should "return -1 with a test named 'zzz' (less than it)" do
354
- result = test1 <=> Factory.test("zzz")
355
- assert_that(result).equals(-1)
349
+ assert_that(subject <=> Factory.test("zzz")).equals(-1)
356
350
  end
357
351
  end
358
352
 
359
353
  class CaptureOutTests < UnitTests
360
354
  desc "when capturing std out"
361
-
362
- let(:capture_config1) { Assert::Config.new(:capture_output => true) }
363
- let(:test1) {
355
+ subject {
364
356
  Factory.test("stdout", capture_config1) do
365
357
  puts "std out from the test"
366
358
  assert true
367
359
  end
368
360
  }
369
361
 
362
+ let(:capture_config1) { Assert::Config.new(:capture_output => true) }
363
+
370
364
  should "capture any io from the test" do
371
- test1.run
372
- assert_that(test1.output).equals("std out from the test\n")
365
+ subject.run
366
+ assert_that(subject.output).equals("std out from the test\n")
373
367
  end
374
368
  end
375
369
 
376
370
  class FullCaptureOutTests < CaptureOutTests
377
371
  desc "across setup, teardown, and meth calls"
378
-
379
- setup do
380
- test1.context_class.setup{ puts "std out from the setup" }
381
- test1.context_class.teardown{ puts "std out from the teardown" }
382
- test1.context_class.send(:define_method, "a_method_an_assert_calls") do
383
- puts "std out from a method an assert called"
384
- end
385
- end
386
-
387
- let(:test1) {
372
+ subject {
388
373
  Factory.test("fullstdouttest", capture_config1) do
389
374
  puts "std out from the test"
390
375
  assert a_method_an_assert_calls
391
376
  end
392
377
  }
393
378
 
379
+ setup do
380
+ subject.context_class.setup{ puts "std out from the setup" }
381
+ subject.context_class.teardown{ puts "std out from the teardown" }
382
+ subject.context_class.send(:define_method, "a_method_an_assert_calls") do
383
+ puts "std out from a method an assert called"
384
+ end
385
+ end
386
+
394
387
  should "collect all stdout in the output accessor" do
395
- test1.run
388
+ subject.run
396
389
 
397
390
  exp_out =
398
391
  "std out from the setup\n"\
399
392
  "std out from the test\n"\
400
393
  "std out from a method an assert called\n"\
401
394
  "std out from the teardown\n"
402
- assert_that(test1.output).equals(exp_out)
395
+ assert_that(subject.output).equals(exp_out)
403
396
  end
404
397
  end
405
398
  end