assert 2.19.1 → 2.19.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.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/assert.gemspec +10 -7
  3. data/lib/assert.rb +18 -6
  4. data/lib/assert/actual_value.rb +8 -6
  5. data/lib/assert/assert_runner.rb +36 -17
  6. data/lib/assert/assertions.rb +83 -50
  7. data/lib/assert/cli.rb +30 -70
  8. data/lib/assert/clirb.rb +55 -0
  9. data/lib/assert/config.rb +20 -8
  10. data/lib/assert/config_helpers.rb +55 -22
  11. data/lib/assert/context.rb +14 -18
  12. data/lib/assert/context/let_dsl.rb +5 -2
  13. data/lib/assert/context/setup_dsl.rb +21 -16
  14. data/lib/assert/context/subject_dsl.rb +6 -7
  15. data/lib/assert/context/suite_dsl.rb +2 -1
  16. data/lib/assert/context/test_dsl.rb +55 -19
  17. data/lib/assert/default_suite.rb +25 -15
  18. data/lib/assert/default_view.rb +47 -30
  19. data/lib/assert/file_line.rb +6 -6
  20. data/lib/assert/macro.rb +1 -1
  21. data/lib/assert/macros/methods.rb +71 -45
  22. data/lib/assert/result.rb +111 -62
  23. data/lib/assert/runner.rb +68 -51
  24. data/lib/assert/stub.rb +42 -3
  25. data/lib/assert/suite.rb +67 -28
  26. data/lib/assert/test.rb +40 -35
  27. data/lib/assert/utils.rb +19 -10
  28. data/lib/assert/version.rb +1 -1
  29. data/lib/assert/view.rb +44 -18
  30. data/lib/assert/view_helpers.rb +100 -92
  31. data/test/helper.rb +3 -1
  32. data/test/support/factory.rb +38 -21
  33. data/test/system/stub_tests.rb +180 -144
  34. data/test/system/test_tests.rb +86 -60
  35. data/test/unit/actual_value_tests.rb +69 -50
  36. data/test/unit/assert_tests.rb +39 -22
  37. data/test/unit/assertions/assert_block_tests.rb +10 -10
  38. data/test/unit/assertions/assert_changes_tests.rb +25 -21
  39. data/test/unit/assertions/assert_empty_tests.rb +14 -12
  40. data/test/unit/assertions/assert_equal_tests.rb +26 -26
  41. data/test/unit/assertions/assert_file_exists_tests.rb +15 -13
  42. data/test/unit/assertions/assert_includes_tests.rb +10 -10
  43. data/test/unit/assertions/assert_instance_of_tests.rb +14 -14
  44. data/test/unit/assertions/assert_is_a_tests.rb +128 -0
  45. data/test/unit/assertions/assert_match_tests.rb +10 -10
  46. data/test/unit/assertions/assert_nil_tests.rb +16 -12
  47. data/test/unit/assertions/assert_raises_tests.rb +27 -20
  48. data/test/unit/assertions/assert_respond_to_tests.rb +10 -10
  49. data/test/unit/assertions/assert_same_tests.rb +24 -24
  50. data/test/unit/assertions/assert_true_false_tests.rb +32 -24
  51. data/test/unit/assertions_tests.rb +14 -9
  52. data/test/unit/config_helpers_tests.rb +15 -10
  53. data/test/unit/config_tests.rb +34 -9
  54. data/test/unit/context/setup_dsl_tests.rb +24 -14
  55. data/test/unit/context/subject_dsl_tests.rb +3 -3
  56. data/test/unit/context/suite_dsl_tests.rb +4 -4
  57. data/test/unit/context/test_dsl_tests.rb +37 -17
  58. data/test/unit/context_info_tests.rb +4 -4
  59. data/test/unit/context_tests.rb +110 -54
  60. data/test/unit/default_suite_tests.rb +10 -6
  61. data/test/unit/factory_tests.rb +2 -2
  62. data/test/unit/file_line_tests.rb +7 -7
  63. data/test/unit/macro_tests.rb +11 -11
  64. data/test/unit/result_tests.rb +47 -41
  65. data/test/unit/runner_tests.rb +29 -16
  66. data/test/unit/suite_tests.rb +37 -15
  67. data/test/unit/test_tests.rb +63 -50
  68. data/test/unit/utils_tests.rb +48 -35
  69. data/test/unit/view_helpers_tests.rb +21 -14
  70. data/test/unit/view_tests.rb +5 -5
  71. metadata +26 -11
  72. data/test/unit/assertions/assert_kind_of_tests.rb +0 -68
@@ -6,9 +6,9 @@ require "assert/context/setup_dsl"
6
6
  module Assert::Context::SetupDSL
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::Context::SetupDSL"
9
- subject { Factory.modes_off_context_class }
9
+ subject{ Factory.modes_off_context_class }
10
10
 
11
- let(:block1) { ::Proc.new {} }
11
+ let(:block1){ ::Proc.new{} }
12
12
  end
13
13
 
14
14
  class SetupTeardownOnceMethodsTests < UnitTests
@@ -38,7 +38,7 @@ module Assert::Context::SetupDSL
38
38
  class SetupTeardownWithMethodNameTests < UnitTests
39
39
  desc "methods given a method name"
40
40
 
41
- let(:method_name1) { :something_amazing }
41
+ let(:method_name1){ :something_amazing }
42
42
 
43
43
  should "add the method name to the context" do
44
44
  subject.setup(method_name1)
@@ -50,20 +50,28 @@ module Assert::Context::SetupDSL
50
50
  end
51
51
 
52
52
  class ParentContextClassTests < UnitTests
53
- subject { Factory.modes_off_context_class(parent_class1) }
53
+ subject{ Factory.modes_off_context_class(parent_class1) }
54
54
 
55
- let(:parent_class1) { Factory.modes_off_context_class }
55
+ let(:parent_class1){ Factory.modes_off_context_class }
56
56
  end
57
57
 
58
58
  class SetupTeardownMultipleTests < ParentContextClassTests
59
59
  desc "with multiple calls"
60
60
 
61
- let(:parent_setup_block1) { ::Proc.new { self.setup_status = "the setup" } }
62
- let(:parent_teardown_block1) { ::Proc.new { self.teardown_status += "the teardown" } }
63
- let(:context_setup_block1) { ::Proc.new { self.setup_status += " has been run" } }
64
- let(:context_teardown_block1) { ::Proc.new { self.teardown_status += "has been run " } }
61
+ let(:parent_setup_block1) do
62
+ ::Proc.new{ self.setup_status = "the setup" }
63
+ end
64
+ let(:parent_teardown_block1) do
65
+ ::Proc.new{ self.teardown_status += "the teardown" }
66
+ end
67
+ let(:context_setup_block1) do
68
+ ::Proc.new{ self.setup_status += " has been run" }
69
+ end
70
+ let(:context_teardown_block1) do
71
+ ::Proc.new{ self.teardown_status += "has been run " }
72
+ end
65
73
 
66
- let(:test_status_class) {
74
+ let(:test_status_class) do
67
75
  Class.new do
68
76
  attr_accessor :setup_status, :teardown_status
69
77
  define_method(:setup_something) do
@@ -73,7 +81,7 @@ module Assert::Context::SetupDSL
73
81
  self.teardown_status = "with something "
74
82
  end
75
83
  end
76
- }
84
+ end
77
85
 
78
86
  should "run its parent and its own blocks in the correct order" do
79
87
  parent_class1.setup(&parent_setup_block1)
@@ -84,17 +92,19 @@ module Assert::Context::SetupDSL
84
92
  subject.teardown(&context_teardown_block1)
85
93
 
86
94
  subject.send("run_setups", obj = test_status_class.new)
87
- assert_that(obj.setup_status).equals("the setup has been run with something")
95
+ assert_that(obj.setup_status)
96
+ .equals("the setup has been run with something")
88
97
 
89
98
  subject.send("run_teardowns", obj = test_status_class.new)
90
- assert_that(obj.teardown_status).equals("with something has been run the teardown")
99
+ assert_that(obj.teardown_status)
100
+ .equals("with something has been run the teardown")
91
101
  end
92
102
  end
93
103
 
94
104
  class AroundMethodTests < ParentContextClassTests
95
105
  desc "with multiple `around` calls"
96
106
 
97
- let(:test_status_class) { Class.new { attr_accessor :out_status } }
107
+ let(:test_status_class){ Class.new{ attr_accessor :out_status } }
98
108
 
99
109
  should "run its parent and its own blocks in the correct order" do
100
110
  parent_class1.around do |block|
@@ -6,10 +6,10 @@ require "assert/context/subject_dsl"
6
6
  module Assert::Context::SubjectDSL
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::Context::SubjectDSL"
9
- subject { Factory.modes_off_context_class(parent_class1) }
9
+ subject{ Factory.modes_off_context_class(parent_class1) }
10
10
 
11
- let(:parent_class1) { Factory.modes_off_context_class }
12
- let(:subject_block1) { Proc.new {} }
11
+ let(:parent_class1){ Factory.modes_off_context_class }
12
+ let(:subject_block1){ Proc.new{} }
13
13
  end
14
14
 
15
15
  class DescriptionTests < UnitTests
@@ -8,10 +8,10 @@ require "assert/suite"
8
8
  module Assert::Context::SuiteDSL
9
9
  class UnitTests < Assert::Context
10
10
  desc "Assert::Context::SuiteDSL"
11
- subject { Factory.context_class(parent_class1) }
11
+ subject{ Factory.context_class(parent_class1) }
12
12
 
13
- let(:parent_class1) { Factory.context_class }
14
- let(:custom_suite1) { Factory.modes_off_suite }
13
+ let(:parent_class1){ Factory.context_class }
14
+ let(:custom_suite1){ Factory.modes_off_suite }
15
15
 
16
16
  should "use `Assert.suite` by default" do
17
17
  assert_that(subject.suite).equals(Assert.suite)
@@ -30,7 +30,7 @@ module Assert::Context::SuiteDSL
30
30
  parent_class1.suite(custom_suite1)
31
31
  end
32
32
 
33
- let(:custom_suite2) { Factory.modes_off_suite }
33
+ let(:custom_suite2){ Factory.modes_off_suite }
34
34
 
35
35
  should "default to its parent's suite" do
36
36
  assert_that(subject.suite).equals(custom_suite1)
@@ -7,8 +7,8 @@ module Assert::Context::TestDSL
7
7
  class UnitTests < Assert::Context
8
8
  desc "Assert::Context::TestDSL"
9
9
 
10
- let(:test_desc1) { "be true" }
11
- let(:test_block1) { Proc.new{ assert(true) } }
10
+ let(:test_desc1){ "be true" }
11
+ let(:test_block1){ Proc.new{ assert(true) } }
12
12
 
13
13
  should "build a test using `test` with a desc and code block" do
14
14
  d, b = test_desc1, test_block1
@@ -32,7 +32,8 @@ module Assert::Context::TestDSL
32
32
  assert_that(test.code).equals(test_block1)
33
33
  end
34
34
 
35
- should "build a test that skips with no msg when `test_eventually` called" do
35
+ should "build a test that skips with no msg when `test_eventually` "\
36
+ "called" do
36
37
  d, b = test_desc1, test_block1
37
38
  context, test = build_eval_context{ test_eventually(d, &b) }
38
39
  err = capture_err(Assert::Result::TestSkipped) do
@@ -44,7 +45,8 @@ module Assert::Context::TestDSL
44
45
  assert_that(err.backtrace.size).equals(1)
45
46
  end
46
47
 
47
- should "build a test that skips with no msg when `should_eventually` called" do
48
+ should "build a test that skips with no msg when `should_eventually` "\
49
+ "called" do
48
50
  d, b = test_desc1, test_block1
49
51
  context, test = build_eval_context{ should_eventually(d, &b) }
50
52
  err = capture_err(Assert::Result::TestSkipped) do
@@ -58,7 +60,7 @@ module Assert::Context::TestDSL
58
60
 
59
61
  should "skip with the msg \"TODO\" when `test` called with no block" do
60
62
  d = test_desc1
61
- context, test = build_eval_context { test(d) } # no block passed
63
+ context, test = build_eval_context{ test(d) } # no block passed
62
64
  err = capture_err(Assert::Result::TestSkipped) do
63
65
  context.instance_eval(&test.code)
64
66
  end
@@ -70,7 +72,7 @@ module Assert::Context::TestDSL
70
72
 
71
73
  should "skip with the msg \"TODO\" when `should` called with no block" do
72
74
  d = test_desc1
73
- context, test = build_eval_context { should(d) } # no block passed
75
+ context, test = build_eval_context{ should(d) } # no block passed
74
76
  err = capture_err(Assert::Result::TestSkipped) do
75
77
  context.instance_eval(&test.code)
76
78
  end
@@ -80,7 +82,8 @@ module Assert::Context::TestDSL
80
82
  assert_that(err.backtrace.size).equals(1)
81
83
  end
82
84
 
83
- should "skip with the msg \"TODO\" when `test_eventually` called with no block" do
85
+ should "skip with the msg \"TODO\" when `test_eventually` called with "\
86
+ "no block" do
84
87
  d = test_desc1
85
88
  context, test = build_eval_context{ test_eventually(d) } # no block given
86
89
  err = capture_err(Assert::Result::TestSkipped) do
@@ -92,9 +95,10 @@ module Assert::Context::TestDSL
92
95
  assert_that(err.backtrace.size).equals(1)
93
96
  end
94
97
 
95
- should "skip with the msg \"TODO\" when `should_eventually` called with no block" do
98
+ should "skip with the msg \"TODO\" when `should_eventually` called with "\
99
+ "no block" do
96
100
  d = test_desc1
97
- context, test = build_eval_context{ should_eventually(d) } # no block given
101
+ context, test = build_eval_context{ should_eventually(d) }
98
102
  err = capture_err(Assert::Result::TestSkipped) do
99
103
  context.instance_eval(&test.code)
100
104
  end
@@ -106,7 +110,11 @@ module Assert::Context::TestDSL
106
110
 
107
111
  should "build a test from a macro using `test`" do
108
112
  d, b = test_desc1, test_block1
109
- m = Assert::Macro.new{ test(d, &b); test(d, &b) }
113
+ m =
114
+ Assert::Macro.new do
115
+ test(d, &b)
116
+ test(d, &b)
117
+ end
110
118
  context_class = Factory.modes_off_context_class{ test(m) }
111
119
 
112
120
  assert_that(context_class.suite.tests_to_run_count).equals(2)
@@ -114,7 +122,11 @@ module Assert::Context::TestDSL
114
122
 
115
123
  should "build a test from a macro using `should`" do
116
124
  d, b = test_desc1, test_block1
117
- m = Assert::Macro.new{ should(d, &b); should(d, &b) }
125
+ m =
126
+ Assert::Macro.new do
127
+ should(d, &b)
128
+ should(d, &b)
129
+ end
118
130
  context_class = Factory.modes_off_context_class{ should(m) }
119
131
 
120
132
  assert_that(context_class.suite.tests_to_run_count).equals(2)
@@ -122,22 +134,30 @@ module Assert::Context::TestDSL
122
134
 
123
135
  should "build a test that skips from a macro using `test_eventually`" do
124
136
  d, b = test_desc1, test_block1
125
- m = Assert::Macro.new{ test(d, &b); test(d, &b) }
137
+ m =
138
+ Assert::Macro.new do
139
+ test(d, &b)
140
+ test(d, &b)
141
+ end
126
142
  context, test = build_eval_context{ test_eventually(m) }
127
143
 
128
144
  assert_that(context.class.suite.tests_to_run_count).equals(1)
129
- assert_that {
145
+ assert_that{
130
146
  context.instance_eval(&test.code)
131
147
  }.raises(Assert::Result::TestSkipped)
132
148
  end
133
149
 
134
150
  should "build a test that skips from a macro using `should_eventually`" do
135
151
  d, b = test_desc1, test_block1
136
- m = Assert::Macro.new{ should(d, &b); should(d, &b) }
152
+ m =
153
+ Assert::Macro.new do
154
+ should(d, &b)
155
+ should(d, &b)
156
+ end
137
157
  context, test = build_eval_context{ should_eventually(m) }
138
158
 
139
159
  assert_that(context.class.suite.tests_to_run_count).equals(1)
140
- assert_that {
160
+ assert_that{
141
161
  context.instance_eval(&test.code)
142
162
  }.raises(Assert::Result::TestSkipped)
143
163
  end
@@ -153,8 +173,8 @@ module Assert::Context::TestDSL
153
173
  def capture_err(err_class, &block)
154
174
  begin
155
175
  block.call
156
- rescue err_class => e
157
- e
176
+ rescue err_class => ex
177
+ ex
158
178
  end
159
179
  end
160
180
  end
@@ -8,20 +8,20 @@ require "assert/context"
8
8
  class Assert::ContextInfo
9
9
  class UnitTests < Assert::Context
10
10
  desc "Assert::ContextInfo"
11
- subject { unit_class }
11
+ subject{ unit_class }
12
12
 
13
- let(:unit_class) { Assert::ContextInfo }
13
+ let(:unit_class){ Assert::ContextInfo }
14
14
  end
15
15
 
16
16
  class InitTests < UnitTests
17
17
  desc "when init"
18
- subject { unit_class.new(context1, nil, @caller.first) }
18
+ subject{ unit_class.new(context1, nil, @caller.first) }
19
19
 
20
20
  setup do
21
21
  @caller = caller
22
22
  end
23
23
 
24
- let(:context1) { Assert::Context }
24
+ let(:context1){ Assert::Context }
25
25
 
26
26
  should have_readers :called_from, :klass, :file
27
27
  should have_imeths :test_name
@@ -10,9 +10,9 @@ require "assert/utils"
10
10
  class Assert::Context
11
11
  class UnitTests < Assert::Context
12
12
  desc "Assert::Context"
13
- subject { unit_class }
13
+ subject{ unit_class }
14
14
 
15
- let(:unit_class) { Assert::Context }
15
+ let(:unit_class){ Assert::Context }
16
16
 
17
17
  # DSL methods
18
18
  should have_imeths :description, :desc, :describe, :subject, :suite, :let
@@ -27,20 +27,23 @@ class Assert::Context
27
27
 
28
28
  class InitTests < UnitTests
29
29
  desc "when init"
30
- subject { context_class1.new(test1, test1.config, result_callback1) }
30
+ subject{ context_class1.new(test1, test1.config, result_callback1) }
31
31
 
32
32
  setup do
33
33
  @callback_result = nil
34
34
  end
35
35
 
36
- let(:test1) { Factory.test }
37
- let(:context_class1) { test1.context_class }
38
- let(:test_results1) { [] }
39
- let(:result_callback1) {
40
- proc { |result| @callback_result = result; test_results1 << result }
41
- }
42
- let(:halt_config1) { Assert::Config.new(:halt_on_fail => true) }
43
- let(:msg1) { Factory.string }
36
+ let(:test1){ Factory.test }
37
+ let(:context_class1){ test1.context_class }
38
+ let(:test_results1){ [] }
39
+ let(:result_callback1) do
40
+ proc do |result|
41
+ @callback_result = result
42
+ test_results1 << result
43
+ end
44
+ end
45
+ let(:halt_config1){ Assert::Config.new(halt_on_fail: true) }
46
+ let(:msg1){ Factory.string }
44
47
 
45
48
  should have_imeths :assert, :assert_not, :refute, :assert_that
46
49
  should have_imeths :pass, :ignore, :fail, :flunk, :skip
@@ -48,7 +51,8 @@ class Assert::Context
48
51
 
49
52
  should "collect context info" do
50
53
  test = @__assert_running_test__
51
- assert_that(test.context_info.file).matches(/test\/unit\/context_tests.rb$/)
54
+ assert_that(test.context_info.file)
55
+ .matches(%r{test/unit/context_tests.rb$})
52
56
  assert_that(test.context_info.klass).equals(self.class)
53
57
  end
54
58
 
@@ -60,7 +64,9 @@ class Assert::Context
60
64
  with_backtrace(caller) do
61
65
  assert_that(result.with_bt_set?).is_true
62
66
 
63
- exp = Assert::Result::Backtrace.to_s(exp_with_bt+[(result.backtrace.filtered.first)])
67
+ exp =
68
+ Assert::Result::Backtrace.to_s(exp_with_bt +
69
+ [(result.backtrace.filtered.first)])
64
70
  assert_that(result.trace).equals(exp)
65
71
  assert_that(result.src_line).equals(exp_with_bt.first)
66
72
  end
@@ -71,7 +77,8 @@ class Assert::Context
71
77
  assert_that(result.with_bt_set?).is_false
72
78
 
73
79
  assert_that(result.trace).equals(result.src_line)
74
- assert_that(result.src_line).equals(result.backtrace.filtered.first.to_s)
80
+ assert_that(result.src_line)
81
+ .equals(result.backtrace.filtered.first.to_s)
75
82
  end
76
83
  end
77
84
  end
@@ -80,7 +87,12 @@ class Assert::Context
80
87
  desc "skip method"
81
88
 
82
89
  setup do
83
- begin; subject.skip(msg1); rescue StandardError => @exception; end
90
+ @exception =
91
+ begin
92
+ subject.skip(msg1)
93
+ rescue => ex
94
+ ex
95
+ end
84
96
  @result = Factory.skip_result(@exception)
85
97
  end
86
98
 
@@ -98,7 +110,12 @@ class Assert::Context
98
110
  assert_that(@exception.backtrace.size).does_not_equal(1)
99
111
 
100
112
  called_from = Factory.string
101
- begin; subject.skip(msg1, called_from); rescue StandardError => exception; end
113
+ exception =
114
+ begin
115
+ subject.skip(msg1, called_from)
116
+ rescue => ex
117
+ ex
118
+ end
102
119
  assert_that(exception.backtrace.size).equals(1)
103
120
  assert_that(exception.backtrace.first).equals(called_from)
104
121
  end
@@ -180,14 +197,20 @@ class Assert::Context
180
197
 
181
198
  class HaltOnFailTests < InitTests
182
199
  desc "failing when halting on fails"
183
- subject { context_class1.new(test1, halt_config1, result_callback1) }
200
+ subject{ context_class1.new(test1, halt_config1, result_callback1) }
184
201
 
185
202
  should "raise an exception with the failure's message" do
186
- begin; subject.fail(msg1); rescue StandardError => err; end
187
- assert_that(err).is_kind_of(Assert::Result::TestFailure)
188
- assert_that(err.message).equals(msg1)
189
-
190
- result = Assert::Result::Fail.for_test(Factory.test("something"), err)
203
+ exception =
204
+ begin
205
+ subject.fail(msg1)
206
+ rescue => ex
207
+ ex
208
+ end
209
+ assert_that(exception).is_kind_of(Assert::Result::TestFailure)
210
+ assert_that(exception.message).equals(msg1)
211
+
212
+ result =
213
+ Assert::Result::Fail.for_test(Factory.test("something"), exception)
191
214
  assert_that(result.message).equals(msg1)
192
215
  end
193
216
 
@@ -199,7 +222,7 @@ class Assert::Context
199
222
  class AssertTests < InitTests
200
223
  desc "assert method"
201
224
 
202
- let(:what_failed) { Factory.string }
225
+ let(:what_failed){ Factory.string }
203
226
 
204
227
  should "return a pass result given a `true` assertion" do
205
228
  result = subject.assert(true, msg1){ what_failed }
@@ -213,7 +236,8 @@ class Assert::Context
213
236
  end
214
237
 
215
238
  should "pp the assertion value in the fail message by default" do
216
- exp_def_what = "Failed assert: assertion was `#{Assert::U.show(false, test1.config)}`."
239
+ exp_def_what =
240
+ "Failed assert: assertion was `#{Assert::U.show(false, test1.config)}`."
217
241
  result = subject.assert(false, msg1)
218
242
 
219
243
  assert_that(result.message).equals([msg1, exp_def_what].join("\n"))
@@ -248,7 +272,9 @@ class Assert::Context
248
272
  end
249
273
 
250
274
  should "pp the assertion value in the fail message by default" do
251
- exp_def_what = "Failed assert_not: assertion was `#{Assert::U.show(true, test1.config)}`."
275
+ exp_def_what =
276
+ "Failed assert_not: "\
277
+ "assertion was `#{Assert::U.show(true, test1.config)}`."
252
278
  result = subject.assert_not(true, msg1)
253
279
 
254
280
  assert_that(result.message).equals([msg1, exp_def_what].join("\n"))
@@ -267,32 +293,32 @@ class Assert::Context
267
293
  desc "`assert_that` method"
268
294
 
269
295
  setup do
270
- Assert.stub_tap_on_call(Assert::ActualValue, :new) { |_, call|
296
+ Assert.stub_tap_on_call(Assert::ActualValue, :new) do |_, call|
271
297
  @actual_value_new_call = call
272
- }
298
+ end
273
299
  end
274
300
 
275
- let(:actual_value) { Factory.string }
301
+ let(:actual_value){ Factory.string }
276
302
 
277
303
  should "build an Assert::ActualValue" do
278
304
  assert_instance_of Assert::ActualValue, subject.assert_that(actual_value)
279
305
  assert_equal [actual_value], @actual_value_new_call.pargs
280
- assert_equal({ context: subject }, @actual_value_new_call.kargs)
306
+ assert_equal({ context: subject }, @actual_value_new_call.kargs)
281
307
  end
282
308
  end
283
309
 
284
310
  class SubjectTests < InitTests
285
311
  desc "subject method"
286
- subject { context_class1.new(test1, test1.config, proc{ |result| }) }
312
+ subject{ context_class1.new(test1, test1.config, proc{ |result| }) }
287
313
 
288
314
  setup do
289
315
  expected = expected1
290
- context_class1.subject { @something = expected }
316
+ context_class1.subject{ @something = expected }
291
317
  @subject = subject.subject
292
318
  end
293
319
 
294
- let(:context_class1) { Factory.modes_off_context_class }
295
- let(:expected1) { Factory.string }
320
+ let(:context_class1){ Factory.modes_off_context_class }
321
+ let(:expected1){ Factory.string }
296
322
 
297
323
  should "instance evaluate the block set with the class setup method" do
298
324
  assert_that(@subject).equals(expected1)
@@ -302,8 +328,17 @@ class Assert::Context
302
328
  class PendingTests < InitTests
303
329
  desc "`pending` method"
304
330
 
305
- let(:block2) { proc { fail; pass; } }
306
- let(:block1) { block = block2; proc { pending(&block) } } # test nesting
331
+ let(:block2) do
332
+ proc do
333
+ fail # rubocop:disable Style/SignalException
334
+ pass # rubocop:disable Lint/UnreachableCode
335
+ end
336
+ end
337
+ # test nesting
338
+ let(:block1) do
339
+ block = block2
340
+ proc{ pending(&block) }
341
+ end
307
342
 
308
343
  should "make fails skips and make passes fails" do
309
344
  subject.fail "not affected"
@@ -326,29 +361,42 @@ class Assert::Context
326
361
 
327
362
  class PendingWithHaltOnFailTests < PendingTests
328
363
  desc "when halting on fails"
329
- subject { context_class1.new(test1, halt_config1, result_callback1) }
364
+ subject{ context_class1.new(test1, halt_config1, result_callback1) }
330
365
 
331
366
  should "make fails skips and stop the test" do
332
- begin; subject.pending(&block1); rescue StandardError => err; end
333
- assert_that(err).is_kind_of(Assert::Result::TestSkipped)
334
- assert_that(err.message).includes("Pending fail")
335
-
336
- assert_that(test_results1.size).equals(0) # it halted before the pending pass
367
+ exception =
368
+ begin
369
+ subject.pending(&block1)
370
+ rescue => ex
371
+ ex
372
+ end
373
+ assert_that(exception).is_kind_of(Assert::Result::TestSkipped)
374
+ assert_that(exception.message).includes("Pending fail")
375
+
376
+ # it halted before the pending pass
377
+ assert_that(test_results1.size).equals(0)
337
378
  end
338
379
  end
339
380
 
340
381
  class WithBacktraceTests < InitTests
341
382
  desc "`with_backtrace` method"
342
383
 
343
- let(:from_bt1) { ["called_from_here", Factory.string] }
344
- let(:from_block1) { proc { ignore; fail; pass; skip "todo"; } }
384
+ let(:from_bt1){ ["called_from_here", Factory.string] }
385
+ let(:from_block1) do
386
+ proc do
387
+ ignore
388
+ fail # rubocop:disable Style/SignalException
389
+ pass # rubocop:disable Lint/UnreachableCode
390
+ skip "todo"
391
+ end
392
+ end
345
393
 
346
394
  should "alter non-error block results' bt with given bt's first line" do
347
395
  subject.fail "not affected"
348
396
  begin
349
397
  subject.with_backtrace(from_bt1, &from_block1)
350
- rescue Assert::Result::TestSkipped => e
351
- test_results1 << Assert::Result::Skip.for_test(test1, e)
398
+ rescue Assert::Result::TestSkipped => ex
399
+ test_results1 << Assert::Result::Skip.for_test(test1, ex)
352
400
  end
353
401
 
354
402
  assert_that(test_results1.size).equals(5)
@@ -367,21 +415,29 @@ class Assert::Context
367
415
  class WithNestedBacktraceTests < InitTests
368
416
  desc "`with_backtrace` method nested"
369
417
 
370
- let(:from_bt1) { ["called_from_here 1", Factory.string] }
371
- let(:from_bt2) { ["called_from_here 2", Factory.string] }
372
- let(:from_block2) { proc { ignore; fail; pass; skip "todo"; } }
373
- let(:from_block1) {
418
+ let(:from_bt1){ ["called_from_here 1", Factory.string] }
419
+ let(:from_bt2){ ["called_from_here 2", Factory.string] }
420
+ let(:from_block2) do
421
+ proc do
422
+ ignore
423
+ fail # rubocop:disable Style/SignalException
424
+ pass # rubocop:disable Lint/UnreachableCode
425
+ skip "todo"
426
+ end
427
+ end
428
+ let(:from_block1) do
374
429
  from_bt = from_bt2
375
430
  from_block = from_block2
376
- proc { with_backtrace(from_bt, &from_block) }
377
- }
431
+ proc{ with_backtrace(from_bt, &from_block) }
432
+ end
378
433
 
379
- should "alter non-error block results' bt with nested wbt accrued first lines" do
434
+ should "alter non-error block results' bt with nested wbt accrued "\
435
+ "first lines" do
380
436
  subject.fail "not affected"
381
437
  begin
382
438
  subject.with_backtrace(from_bt1, &from_block1)
383
- rescue Assert::Result::TestSkipped => e
384
- test_results1 << Assert::Result::Skip.for_test(test1, e)
439
+ rescue Assert::Result::TestSkipped => ex
440
+ test_results1 << Assert::Result::Skip.for_test(test1, ex)
385
441
  end
386
442
 
387
443
  assert_that(test_results1.size).equals(5)