assert 2.17.0 → 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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -2
  3. data/README.md +66 -41
  4. data/assert.gemspec +2 -3
  5. data/lib/assert.rb +0 -10
  6. data/lib/assert/actual_value.rb +127 -0
  7. data/lib/assert/assert_runner.rb +0 -3
  8. data/lib/assert/assertions.rb +10 -23
  9. data/lib/assert/cli.rb +30 -46
  10. data/lib/assert/config.rb +0 -4
  11. data/lib/assert/config_helpers.rb +0 -4
  12. data/lib/assert/context.rb +18 -9
  13. data/lib/assert/context/let_dsl.rb +13 -0
  14. data/lib/assert/context/method_missing.rb +19 -0
  15. data/lib/assert/context/setup_dsl.rb +0 -4
  16. data/lib/assert/context/subject_dsl.rb +23 -28
  17. data/lib/assert/context/suite_dsl.rb +0 -4
  18. data/lib/assert/context/test_dsl.rb +0 -4
  19. data/lib/assert/context_info.rb +0 -4
  20. data/lib/assert/default_runner.rb +0 -4
  21. data/lib/assert/default_suite.rb +0 -5
  22. data/lib/assert/default_view.rb +0 -4
  23. data/lib/assert/factory.rb +0 -3
  24. data/lib/assert/file_line.rb +0 -4
  25. data/lib/assert/macro.rb +0 -3
  26. data/lib/assert/macros/methods.rb +4 -10
  27. data/lib/assert/result.rb +2 -17
  28. data/lib/assert/runner.rb +0 -3
  29. data/lib/assert/stub.rb +15 -1
  30. data/lib/assert/suite.rb +0 -4
  31. data/lib/assert/test.rb +2 -7
  32. data/lib/assert/utils.rb +0 -4
  33. data/lib/assert/version.rb +1 -1
  34. data/lib/assert/view.rb +0 -3
  35. data/lib/assert/view_helpers.rb +0 -11
  36. data/log/{.gitkeep → .keep} +0 -0
  37. data/test/helper.rb +23 -29
  38. data/test/support/factory.rb +14 -0
  39. data/test/support/inherited_stuff.rb +0 -2
  40. data/test/system/stub_tests.rb +332 -352
  41. data/test/system/test_tests.rb +98 -124
  42. data/test/unit/actual_value_tests.rb +335 -0
  43. data/test/unit/assert_tests.rb +121 -46
  44. data/test/unit/assertions/assert_block_tests.rb +30 -35
  45. data/test/unit/assertions/assert_empty_tests.rb +33 -35
  46. data/test/unit/assertions/assert_equal_tests.rb +75 -83
  47. data/test/unit/assertions/assert_file_exists_tests.rb +32 -36
  48. data/test/unit/assertions/assert_includes_tests.rb +38 -41
  49. data/test/unit/assertions/assert_instance_of_tests.rb +34 -37
  50. data/test/unit/assertions/assert_kind_of_tests.rb +34 -37
  51. data/test/unit/assertions/assert_match_tests.rb +34 -37
  52. data/test/unit/assertions/assert_nil_tests.rb +30 -35
  53. data/test/unit/assertions/assert_raises_tests.rb +54 -60
  54. data/test/unit/assertions/assert_respond_to_tests.rb +36 -39
  55. data/test/unit/assertions/assert_same_tests.rb +86 -88
  56. data/test/unit/assertions/assert_true_false_tests.rb +60 -66
  57. data/test/unit/assertions_tests.rb +14 -17
  58. data/test/unit/config_helpers_tests.rb +41 -39
  59. data/test/unit/config_tests.rb +38 -37
  60. data/test/unit/context/let_dsl_tests.rb +10 -0
  61. data/test/unit/context/setup_dsl_tests.rb +68 -87
  62. data/test/unit/context/subject_dsl_tests.rb +15 -49
  63. data/test/unit/context/suite_dsl_tests.rb +15 -20
  64. data/test/unit/context/test_dsl_tests.rb +50 -57
  65. data/test/unit/context_info_tests.rb +23 -18
  66. data/test/unit/context_tests.rb +183 -194
  67. data/test/unit/default_runner_tests.rb +1 -7
  68. data/test/unit/default_suite_tests.rb +57 -56
  69. data/test/unit/factory_tests.rb +5 -6
  70. data/test/unit/file_line_tests.rb +33 -39
  71. data/test/unit/macro_tests.rb +14 -18
  72. data/test/unit/result_tests.rb +159 -196
  73. data/test/unit/runner_tests.rb +64 -71
  74. data/test/unit/suite_tests.rb +58 -59
  75. data/test/unit/test_tests.rb +125 -136
  76. data/test/unit/utils_tests.rb +43 -54
  77. data/test/unit/view_helpers_tests.rb +54 -58
  78. data/test/unit/view_tests.rb +22 -27
  79. metadata +15 -10
  80. data/tmp/.gitkeep +0 -0
@@ -6,346 +6,322 @@ class Assert::Test
6
6
  include Assert::Test::TestHelpers
7
7
 
8
8
  desc "Assert::Test"
9
- subject{ @test }
10
9
 
10
+ setup do
11
+ subject.run(&test_run_callback)
12
+ end
11
13
  end
12
14
 
13
15
  class NoResultsTests < SystemTests
14
16
  desc "when producing no results"
15
- setup do
16
- @test = Factory.test
17
- @test.run(&test_run_callback)
18
- end
17
+ subject { Factory.test }
19
18
 
20
19
  should "generate 0 results" do
21
- assert_equal 0, test_run_result_count
20
+ assert_that(test_run_result_count).equals(0)
22
21
  end
23
-
24
22
  end
25
23
 
26
24
  class PassTests < SystemTests
27
25
  desc "when passing a single assertion"
28
- setup do
29
- @test = Factory.test{ assert(1 == 1) }
30
- @test.run(&test_run_callback)
31
- end
26
+ subject { Factory.test{ assert(1 == 1) } }
32
27
 
33
28
  should "generate 1 result" do
34
- assert_equal 1, test_run_result_count
29
+ assert_that(test_run_result_count).equals(1)
35
30
  end
36
31
 
37
32
  should "generate 1 pass result" do
38
- assert_equal 1, test_run_result_count(:pass)
33
+ assert_that(test_run_result_count(:pass)).equals(1)
39
34
  end
40
-
41
35
  end
42
36
 
43
37
  class FailTests < SystemTests
44
38
  desc "when failing a single assertion"
45
- setup do
46
- @test = Factory.test{ assert(1 == 0) }
47
- @test.run(&test_run_callback)
48
- end
39
+ subject { Factory.test{ assert(1 == 0) } }
49
40
 
50
41
  should "generate 1 result" do
51
- assert_equal 1, test_run_result_count
42
+ assert_that(test_run_result_count).equals(1)
52
43
  end
53
44
 
54
45
  should "generate 1 fail result" do
55
- assert_equal 1, test_run_result_count(:fail)
46
+ assert_that(test_run_result_count(:fail)).equals(1)
56
47
  end
57
-
58
48
  end
59
49
 
60
50
  class SkipTests < SystemTests
61
51
  desc "when skipping once"
62
- setup do
63
- @test = Factory.test{ skip }
64
- @test.run(&test_run_callback)
65
- end
52
+ subject { Factory.test{ skip } }
66
53
 
67
54
  should "generate 1 result" do
68
- assert_equal 1, test_run_result_count
55
+ assert_that(test_run_result_count).equals(1)
69
56
  end
70
57
 
71
58
  should "generate 1 skip result" do
72
- assert_equal 1, test_run_result_count(:skip)
59
+ assert_that(test_run_result_count(:skip)).equals(1)
73
60
  end
74
-
75
61
  end
76
62
 
77
63
  class ErrorTests < SystemTests
78
64
  desc "when erroring once"
79
- setup do
80
- @test = Factory.test{ raise("WHAT") }
81
- @test.run(&test_run_callback)
82
- end
65
+ subject { Factory.test{ raise("WHAT") } }
83
66
 
84
67
  should "generate 1 result" do
85
- assert_equal 1, test_run_result_count
68
+ assert_that(test_run_result_count).equals(1)
86
69
  end
87
70
 
88
71
  should "generate 1 error result" do
89
- assert_equal 1, test_run_result_count(:error)
72
+ assert_that(test_run_result_count(:error)).equals(1)
90
73
  end
91
-
92
74
  end
93
75
 
94
76
  class MixedTests < SystemTests
95
77
  desc "when passing 1 assertion and failing 1 assertion"
96
- setup do
97
- @test = Factory.test do
78
+ subject {
79
+ Factory.test do
98
80
  assert(1 == 1)
99
81
  assert(1 == 0)
100
82
  end
101
- @test.run(&test_run_callback)
102
- end
83
+ }
103
84
 
104
85
  should "generate 2 total results" do
105
- assert_equal 2, test_run_result_count
86
+ assert_that(test_run_result_count).equals(2)
106
87
  end
107
88
 
108
89
  should "generate 1 pass result" do
109
- assert_equal 1, test_run_result_count(:pass)
90
+ assert_that(test_run_result_count(:pass)).equals(1)
110
91
  end
111
92
 
112
93
  should "generate 1 fail result" do
113
- assert_equal 1, test_run_result_count(:fail)
94
+ assert_that(test_run_result_count(:fail)).equals(1)
114
95
  end
115
-
116
96
  end
117
97
 
118
98
  class MixedSkipTests < SystemTests
119
99
  desc "when passing 1 assertion and failing 1 assertion with a skip call in between"
120
- setup do
121
- @test = Factory.test do
100
+ subject {
101
+ Factory.test do
122
102
  assert(1 == 1)
123
103
  skip
124
104
  assert(1 == 0)
125
105
  end
126
- @test.run(&test_run_callback)
127
- end
106
+ }
128
107
 
129
108
  should "generate 2 total results" do
130
- assert_equal 2, test_run_result_count
109
+ assert_that(test_run_result_count).equals(2)
131
110
  end
132
111
 
133
112
  should "generate a skip for its last result" do
134
- assert_kind_of Assert::Result::Skip, last_test_run_result
113
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Skip)
135
114
  end
136
115
 
137
116
  should "generate 1 pass result" do
138
- assert_equal 1, test_run_result_count(:pass)
117
+ assert_that(test_run_result_count(:pass)).equals(1)
139
118
  end
140
119
 
141
120
  should "generate 1 skip result" do
142
- assert_equal 1, test_run_result_count(:skip)
121
+ assert_that(test_run_result_count(:skip)).equals(1)
143
122
  end
144
123
 
145
124
  should "generate 0 fail results" do
146
- assert_equal 0, test_run_result_count(:fail)
125
+ assert_that(test_run_result_count(:fail)).equals(0)
147
126
  end
148
-
149
127
  end
150
128
 
151
129
  class MixedErrorTests < SystemTests
152
130
  desc "when passing 1 assertion and failing 1 assertion with an exception raised in between"
153
- setup do
154
- @test = Factory.test do
131
+ subject {
132
+ Factory.test do
155
133
  assert(1 == 1)
156
134
  raise Exception, "something errored"
157
135
  assert(1 == 0)
158
136
  end
159
- @test.run(&test_run_callback)
160
- end
137
+ }
161
138
 
162
139
  should "generate 2 total results" do
163
- assert_equal 2, test_run_result_count
140
+ assert_that(test_run_result_count).equals(2)
164
141
  end
165
142
 
166
143
  should "generate an error for its last result" do
167
- assert_kind_of Assert::Result::Error, last_test_run_result
144
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Error)
168
145
  end
169
146
 
170
147
  should "generate 1 pass result" do
171
- assert_equal 1, test_run_result_count(:pass)
148
+ assert_that(test_run_result_count(:pass)).equals(1)
172
149
  end
173
150
 
174
151
  should "generate 1 error result" do
175
- assert_equal 1, test_run_result_count(:error)
152
+ assert_that(test_run_result_count(:error)).equals(1)
176
153
  end
177
154
 
178
155
  should "generate 0 fail results" do
179
- assert_equal 0, test_run_result_count(:fail)
156
+ assert_that(test_run_result_count(:fail)).equals(0)
180
157
  end
181
-
182
158
  end
183
159
 
184
160
  class MixedPassTests < SystemTests
185
161
  desc "when passing 1 assertion and failing 1 assertion with a pass call in between"
186
- setup do
187
- @test = Factory.test do
162
+ subject {
163
+ Factory.test do
188
164
  assert(1 == 1)
189
165
  pass
190
166
  assert(1 == 0)
191
167
  end
192
- @test.run(&test_run_callback)
193
- end
168
+ }
194
169
 
195
170
  should "generate 3 total results" do
196
- assert_equal 3, test_run_result_count
171
+ assert_that(test_run_result_count).equals(3)
197
172
  end
198
173
 
199
174
  should "generate a fail for its last result" do
200
- assert_kind_of Assert::Result::Fail, last_test_run_result
175
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Fail)
201
176
  end
202
177
 
203
178
  should "generate 2 pass results" do
204
- assert_equal 2, test_run_result_count(:pass)
179
+ assert_that(test_run_result_count(:pass)).equals(2)
205
180
  end
206
181
 
207
182
  should "generate 1 fail result" do
208
- assert_equal 1, test_run_result_count(:fail)
183
+ assert_that(test_run_result_count(:fail)).equals(1)
209
184
  end
210
-
211
185
  end
212
186
 
213
187
  class MixedFailTests < SystemTests
214
188
  desc "when failing 1 assertion and passing 1 assertion with a fail call in between"
215
- setup do
216
- @test = Factory.test do
189
+ subject {
190
+ Factory.test do
217
191
  assert(1 == 0)
218
192
  fail
219
193
  assert(1 == 1)
220
194
  end
221
- @test.run(&test_run_callback)
222
- end
195
+ }
223
196
 
224
197
  should "generate 3 total results" do
225
- assert_equal 3, test_run_result_count
198
+ assert_that(test_run_result_count).equals(3)
226
199
  end
227
200
 
228
201
  should "generate a pass for its last result" do
229
- assert_kind_of Assert::Result::Pass, last_test_run_result
202
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Pass)
230
203
  end
231
204
 
232
205
  should "generate 1 pass result" do
233
- assert_equal 1, test_run_result_count(:pass)
206
+ assert_that(test_run_result_count(:pass)).equals(1)
234
207
  end
235
208
 
236
209
  should "generate 2 fail results" do
237
- assert_equal 2, test_run_result_count(:fail)
210
+ assert_that(test_run_result_count(:fail)).equals(2)
238
211
  end
239
-
240
212
  end
241
213
 
242
214
  class MixedFlunkTests < SystemTests
243
215
  desc "has failing 1 assertion and passing 1 assertion with a flunk call in between"
244
- setup do
245
- @test = Factory.test do
216
+ subject {
217
+ Factory.test do
246
218
  assert(1 == 0)
247
219
  flunk
248
220
  assert(1 == 1)
249
221
  end
250
- @test.run(&test_run_callback)
251
- end
222
+ }
252
223
 
253
224
  should "generate 3 total results" do
254
- assert_equal 3, test_run_result_count
225
+ assert_that(test_run_result_count).equals(3)
255
226
  end
256
227
 
257
228
  should "generate a pass for its last result" do
258
- assert_kind_of Assert::Result::Pass, last_test_run_result
229
+ assert_that(last_test_run_result).is_kind_of(Assert::Result::Pass)
259
230
  end
260
231
 
261
232
  should "generate 1 pass results" do
262
- assert_equal 1, test_run_result_count(:pass)
233
+ assert_that(test_run_result_count(:pass)).equals(1)
263
234
  end
264
235
 
265
236
  should "generate 2 fail results" do
266
- assert_equal 2, test_run_result_count(:fail)
237
+ assert_that(test_run_result_count(:fail)).equals(2)
267
238
  end
268
-
269
239
  end
270
240
 
271
241
  class WithSetupsTests < SystemTests
272
242
  desc "that has setup logic"
273
- setup do
274
- @context_class = Factory.context_class do
243
+ subject {
244
+ Factory.test("t", Factory.context_info(context_class1)) { pass "TEST" }
245
+ }
246
+
247
+ let(:context_class1) {
248
+ Factory.context_class do
275
249
  # assert style
276
- setup{ pass "assert style setup" }
250
+ setup { pass "assert style setup" }
277
251
  # test/unit style
278
252
  def setup; pass "test/unit style setup"; end
279
253
  end
280
- @test = Factory.test("t", Factory.context_info(@context_class)){ pass "TEST" }
281
- @test.run(&test_run_callback)
282
- end
254
+ }
283
255
 
284
256
  should "execute all setup logic when run" do
285
- assert_equal 3, test_run_result_count(:pass)
257
+ assert_that(test_run_result_count(:pass)).equals(3)
286
258
 
287
259
  exp = ["assert style setup", "test/unit style setup", "TEST"]
288
- assert_equal exp, test_run_result_messages
260
+ assert_that(test_run_result_messages).equals(exp)
289
261
  end
290
-
291
262
  end
292
263
 
293
264
  class WithTeardownsTests < SystemTests
294
265
  desc "that has teardown logic"
295
- setup do
296
- @context_class = Factory.context_class do
266
+ subject {
267
+ Factory.test("t", Factory.context_info(context_class1)) { pass "TEST" }
268
+ }
269
+
270
+ let(:context_class1) {
271
+ Factory.context_class do
297
272
  # assert style
298
- teardown{ pass "assert style teardown" }
273
+ teardown { pass "assert style teardown" }
299
274
  # test/unit style
300
275
  def teardown; pass "test/unit style teardown"; end
301
276
  end
302
- @test = Factory.test("t", Factory.context_info(@context_class)){ pass "TEST" }
303
- @test.run(&test_run_callback)
304
- end
277
+ }
305
278
 
306
279
  should "execute all teardown logic when run" do
307
- assert_equal 3, test_run_result_count(:pass)
280
+ assert_that(test_run_result_count(:pass)).equals(3)
308
281
 
309
282
  exp = ["TEST", "assert style teardown", "test/unit style teardown"]
310
- assert_equal exp, test_run_result_messages
283
+ assert_that(test_run_result_messages).equals(exp)
311
284
  end
312
-
313
285
  end
314
286
 
315
287
  class WithAroundsTests < SystemTests
316
288
  desc "that has around logic (in addition to setups/teardowns)"
317
- setup do
318
- @parent_context_class = Factory.modes_off_context_class do
289
+ subject {
290
+ Factory.test("t", Factory.context_info(context_class1)) { pass "TEST" }
291
+ }
292
+
293
+ let(:parent_context_class1) {
294
+ Factory.modes_off_context_class do
319
295
  around do |block|
320
296
  pass "parent around start"
321
297
  block.call
322
298
  pass "parent around end"
323
299
  end
324
- setup{ pass "parent setup" }
325
- teardown{ pass "parent teardown" }
300
+ setup { pass "parent setup" }
301
+ teardown { pass "parent teardown" }
326
302
  end
327
- @context_class = Factory.modes_off_context_class(@parent_context_class) do
328
- setup{ pass "child setup1" }
303
+ }
304
+ let(:context_class1) {
305
+ Factory.modes_off_context_class(parent_context_class1) do
306
+ setup { pass "child setup1" }
329
307
  around do |block|
330
308
  pass "child around1 start"
331
309
  block.call
332
310
  pass "child around1 end"
333
311
  end
334
- teardown{ pass "child teardown1" }
335
- setup{ pass "child setup2" }
312
+ teardown { pass "child teardown1" }
313
+ setup { pass "child setup2" }
336
314
  around do |block|
337
315
  pass "child around2 start"
338
316
  block.call
339
317
  pass "child around2 end"
340
318
  end
341
- teardown{ pass "child teardown2" }
319
+ teardown { pass "child teardown2" }
342
320
  end
343
- @test = Factory.test("t", Factory.context_info(@context_class)){ pass "TEST" }
344
- @test.run(&test_run_callback)
345
- end
321
+ }
346
322
 
347
323
  should "run the arounds outside of the setups/teardowns/test" do
348
- assert_equal 13, test_run_result_count(:pass)
324
+ assert_that(test_run_result_count(:pass)).equals(13)
349
325
 
350
326
  exp = [
351
327
  "parent around start", "child around1 start", "child around2 start",
@@ -353,9 +329,7 @@ class Assert::Test
353
329
  "child teardown1", "child teardown2", "parent teardown",
354
330
  "child around2 end", "child around1 end", "parent around end"
355
331
  ]
356
- assert_equal exp, test_run_result_messages
332
+ assert_that(test_run_result_messages).equals(exp)
357
333
  end
358
-
359
334
  end
360
-
361
335
  end