assert 2.18.0 → 2.19.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +66 -37
- data/assert.gemspec +4 -3
- data/lib/assert/actual_value.rb +140 -0
- data/lib/assert/assertions.rb +80 -20
- data/lib/assert/context.rb +31 -37
- data/lib/assert/context/let_dsl.rb +13 -0
- data/lib/assert/context/method_missing.rb +19 -0
- data/lib/assert/context/subject_dsl.rb +23 -24
- data/lib/assert/macros/methods.rb +4 -4
- data/lib/assert/result.rb +5 -1
- data/lib/assert/stub.rb +16 -0
- data/lib/assert/suite.rb +7 -10
- data/lib/assert/test.rb +0 -8
- data/lib/assert/version.rb +1 -1
- data/test/helper.rb +23 -25
- data/test/support/factory.rb +15 -0
- data/test/system/stub_tests.rb +332 -333
- data/test/system/test_tests.rb +99 -109
- data/test/unit/actual_value_tests.rb +371 -0
- data/test/unit/assert_tests.rb +111 -43
- data/test/unit/assertions/assert_block_tests.rb +30 -31
- data/test/unit/assertions/assert_changes_tests.rb +97 -0
- data/test/unit/assertions/assert_empty_tests.rb +33 -32
- data/test/unit/assertions/assert_equal_tests.rb +94 -74
- data/test/unit/assertions/assert_file_exists_tests.rb +32 -33
- data/test/unit/assertions/assert_includes_tests.rb +38 -37
- data/test/unit/assertions/assert_instance_of_tests.rb +34 -33
- data/test/unit/assertions/assert_kind_of_tests.rb +34 -33
- data/test/unit/assertions/assert_match_tests.rb +34 -33
- data/test/unit/assertions/assert_nil_tests.rb +30 -31
- data/test/unit/assertions/assert_raises_tests.rb +55 -55
- data/test/unit/assertions/assert_respond_to_tests.rb +36 -35
- data/test/unit/assertions/assert_same_tests.rb +86 -81
- data/test/unit/assertions/assert_true_false_tests.rb +60 -60
- data/test/unit/assertions_tests.rb +26 -24
- data/test/unit/config_helpers_tests.rb +43 -38
- data/test/unit/config_tests.rb +38 -34
- data/test/unit/context/let_dsl_tests.rb +10 -0
- data/test/unit/context/setup_dsl_tests.rb +70 -81
- data/test/unit/context/subject_dsl_tests.rb +15 -43
- data/test/unit/context/suite_dsl_tests.rb +15 -16
- data/test/unit/context/test_dsl_tests.rb +50 -52
- data/test/unit/context_info_tests.rb +23 -15
- data/test/unit/context_tests.rb +184 -179
- data/test/unit/default_runner_tests.rb +2 -5
- data/test/unit/default_suite_tests.rb +57 -53
- data/test/unit/factory_tests.rb +5 -3
- data/test/unit/file_line_tests.rb +33 -35
- data/test/unit/macro_tests.rb +14 -10
- data/test/unit/result_tests.rb +159 -183
- data/test/unit/runner_tests.rb +64 -64
- data/test/unit/suite_tests.rb +56 -59
- data/test/unit/test_tests.rb +118 -139
- data/test/unit/utils_tests.rb +43 -45
- data/test/unit/view_helpers_tests.rb +54 -52
- data/test/unit/view_tests.rb +22 -23
- metadata +29 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9486fb389a6e45657eaf3c79f7c2cfea3e8cd6d9b8593c28597b716f9316c86b
|
4
|
+
data.tar.gz: dea0bd1b5061630fddad2f2feaa43e3faf0e64504bf444599747035b3ca8e40f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6e57f7df5c6b7273a3ccb190ecc77f014fe597fa15fb6cc72f4bdadd77a12066736e9dffc12cc02d4854f7cf92751fe1994d5142ad24c44eb196906eb079d64
|
7
|
+
data.tar.gz: cd2c4c0ef5c647abab8a9aac3340d17219ccd5b9d8eed5df34f47238296187122ee4b0df2c09aa9989e7dc8ddcb5d0529e3c615f539cf22e3e4f5d35a8b81575
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ require "assert"
|
|
9
9
|
|
10
10
|
class MyTests < Assert::Context
|
11
11
|
test "something" do
|
12
|
-
|
12
|
+
assert_that(1).equals(1)
|
13
13
|
end
|
14
14
|
end
|
15
15
|
```
|
@@ -33,13 +33,13 @@ Running tests in random order, seeded with "56382"
|
|
33
33
|
|
34
34
|
## What Assert is not
|
35
35
|
|
36
|
-
* **RSpec/spec-anything**: define tests using assertion statements
|
37
|
-
* **Unit/Functional/Integration/etc**: Assert is agnostic - you define whatever kinds of tests you like
|
38
|
-
* **Mock/Spec/BDD/etc**: Assert is the framework and there are a variety of 3rd party tools to do such things
|
36
|
+
* **RSpec/spec-anything**: define tests using assertion statements.
|
37
|
+
* **Unit/Functional/Integration/etc**: Assert is agnostic - you define whatever kinds of tests you like and Assert runs them in context.
|
38
|
+
* **Mock/Spec/BDD/etc**: Assert is the framework and there are a variety of 3rd party tools to do such things. Feel free to use whatever you like.
|
39
39
|
|
40
40
|
## Description
|
41
41
|
|
42
|
-
Assert is an assertion
|
42
|
+
Assert is an assertion-style testing framework, meaning you use assertion statements to define your tests and create results. Assert uses class-based contexts so if you want to nest your contexts, use inheritance.
|
43
43
|
|
44
44
|
### Features
|
45
45
|
|
@@ -50,6 +50,7 @@ Assert is an assertion style testing framework, meaning you use assertion statem
|
|
50
50
|
* class-based contexts
|
51
51
|
* multiple before/setup & after/teardown blocks
|
52
52
|
* around blocks
|
53
|
+
* `let` value declarations
|
53
54
|
* full backtrace for errors
|
54
55
|
* optionally pretty print objects in failure descriptions
|
55
56
|
* [stubbing API](https://github.com/redding/assert#stub)
|
@@ -71,58 +72,86 @@ Assert comes with a stubbing API - all it does is replace method calls. In gene
|
|
71
72
|
* no methods are added to `Object` to support stubbing
|
72
73
|
* stubs are auto-unstubbed on test teardown
|
73
74
|
|
74
|
-
**Note**: Assert's stubbing logic has been extracted into a separate gem: [MuchStub](https://github.com/redding/much-stub/#muchstub). However, the main `Assert.{stub|unstub|stub_send|etc}` api is still available (it just proxies MuchStub now).
|
75
|
+
**Note**: Assert's stubbing logic has been extracted into a separate gem: [MuchStub](https://github.com/redding/much-stub/#muchstub). However, the main `Assert.{stub|unstub|stub_send|stub_tap|etc}` api is still available (it just proxies to MuchStub now).
|
75
76
|
|
76
77
|
```ruby
|
77
78
|
myclass = Class.new do
|
78
|
-
def
|
79
|
-
|
79
|
+
def my_method
|
80
|
+
"my_method"
|
81
|
+
end
|
82
|
+
|
83
|
+
def my_value(value)
|
84
|
+
value
|
85
|
+
end
|
80
86
|
end
|
81
|
-
|
87
|
+
my_object = myclass.new
|
82
88
|
|
83
|
-
|
84
|
-
# => "
|
85
|
-
|
89
|
+
my_object.my_method
|
90
|
+
# => "my_method"
|
91
|
+
my_object.my_value(123)
|
86
92
|
# => 123
|
87
|
-
|
93
|
+
my_object.my_value(456)
|
88
94
|
# => 456
|
89
95
|
|
90
|
-
Assert.stub(
|
91
|
-
|
92
|
-
# => StubError: `
|
93
|
-
Assert.stub(
|
94
|
-
|
96
|
+
Assert.stub(my_object, :my_method)
|
97
|
+
my_object.my_method
|
98
|
+
# => StubError: `my_method` not stubbed.
|
99
|
+
Assert.stub(my_object, :my_method){ "stub-meth" }
|
100
|
+
my_object.my_method
|
95
101
|
# => "stub-meth"
|
96
|
-
|
102
|
+
my_object.my_method(123)
|
97
103
|
# => StubError: arity mismatch
|
98
|
-
Assert.stub(
|
104
|
+
Assert.stub(my_object, :my_method).with(123){ "stub-meth" }
|
99
105
|
# => StubError: arity mismatch
|
100
|
-
Assert.stub_send(myobj, :mymeth) # call to the original method post-stub
|
101
|
-
# => "meth"
|
102
106
|
|
103
|
-
|
107
|
+
# Call the original method after it has been stubbed.
|
108
|
+
Assert.stub_send(my_object, :my_method)
|
109
|
+
# => "my_method"
|
110
|
+
|
111
|
+
Assert.stub(my_object, :my_value){ "stub-meth" }
|
104
112
|
# => StubError: arity mismatch
|
105
|
-
Assert.stub(
|
106
|
-
|
113
|
+
Assert.stub(my_object, :my_value).with(123){ |val| val.to_s }
|
114
|
+
my_object.my_value
|
107
115
|
# => StubError: arity mismatch
|
108
|
-
|
116
|
+
my_object.my_value(123)
|
109
117
|
# => "123"
|
110
|
-
|
111
|
-
# => StubError: `
|
112
|
-
|
118
|
+
my_object.my_value(456)
|
119
|
+
# => StubError: `my_value(456)` not stubbed.
|
120
|
+
|
121
|
+
# Call the original method after it has been stubbed.
|
122
|
+
Assert.stub_send(my_object, :my_value, 123)
|
113
123
|
# => 123
|
114
|
-
Assert.stub_send(
|
124
|
+
Assert.stub_send(my_object, :my_value, 456)
|
115
125
|
# => 456
|
116
126
|
|
117
|
-
|
118
|
-
|
127
|
+
# Stub a method while preserving its behavior and return value.
|
128
|
+
my_value_called_with = nil
|
129
|
+
Assert.stub_tap(my_object, :my_value) { |value, *args|
|
130
|
+
my_value_called_with = args
|
131
|
+
Assert.stub(value, :to_s) { "FIREWORKS!" }
|
132
|
+
}
|
133
|
+
value = my_object.my_value(123)
|
134
|
+
# => 123
|
135
|
+
my_value_called_with
|
136
|
+
# => [123]
|
137
|
+
value.to_s
|
138
|
+
# =>"FIREWORKS!"
|
139
|
+
|
140
|
+
# Unstub individual stubs
|
141
|
+
Assert.unstub(my_object, :my_method)
|
142
|
+
Assert.unstub(my_object, :my_value)
|
143
|
+
|
144
|
+
# OR blanket unstub all stubs
|
145
|
+
Assert.unstub!
|
119
146
|
|
120
|
-
|
121
|
-
# => "
|
122
|
-
|
147
|
+
my_object.my_method
|
148
|
+
# => "my_method"
|
149
|
+
my_object.my_value(123)
|
123
150
|
# => 123
|
124
|
-
|
151
|
+
value = my_object.my_value(456)
|
125
152
|
# => 456
|
153
|
+
value.to_s
|
154
|
+
# => "456"
|
126
155
|
```
|
127
156
|
|
128
157
|
## Factory
|
@@ -638,4 +667,4 @@ If submitting a Pull Request, please:
|
|
638
667
|
|
639
668
|
One note: please respect that Assert itself is intended to be the flexible, base-level, framework-type logic that should change little if at all. Pull requests for niche functionality or personal testing philosphy stuff will likely not be accepted.
|
640
669
|
|
641
|
-
If you wish to extend Assert for your niche purpose/desire/philosophy, please do so in
|
670
|
+
If you wish to extend Assert for your niche purpose/desire/philosophy, please do so in its own gem (preferrably named `assert-<whatever>`) that uses Assert as a dependency.
|
data/assert.gemspec
CHANGED
@@ -18,8 +18,9 @@ Gem::Specification.new do |gem|
|
|
18
18
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
|
21
|
-
gem.required_ruby_version = "~> 2.
|
21
|
+
gem.required_ruby_version = "~> 2.5"
|
22
22
|
|
23
|
-
gem.add_dependency("much-factory",
|
24
|
-
gem.add_dependency("much-
|
23
|
+
gem.add_dependency("much-factory", ["~> 0.1.0"])
|
24
|
+
gem.add_dependency("much-not-given", ["~> 0.1.0"])
|
25
|
+
gem.add_dependency("much-stub", ["~> 0.1.4"])
|
25
26
|
end
|
@@ -0,0 +1,140 @@
|
|
1
|
+
require "much-not-given"
|
2
|
+
require "much-stub"
|
3
|
+
|
4
|
+
module Assert; end
|
5
|
+
class Assert::ActualValue
|
6
|
+
include MuchNotGiven
|
7
|
+
|
8
|
+
def initialize(value = self.class.not_given, context:, &value_block)
|
9
|
+
@value = self.class.given?(value) ? value : value_block
|
10
|
+
@context = context
|
11
|
+
end
|
12
|
+
|
13
|
+
def returns_true(*args)
|
14
|
+
@context.assert_block(*args, &@value)
|
15
|
+
end
|
16
|
+
|
17
|
+
def does_not_return_true(*args)
|
18
|
+
@context.assert_not_block(*args, &@value)
|
19
|
+
end
|
20
|
+
|
21
|
+
def raises(*expected_exceptions)
|
22
|
+
@context.assert_raises(*expected_exceptions, &@value)
|
23
|
+
end
|
24
|
+
|
25
|
+
def does_not_raise(*expected_exceptions)
|
26
|
+
@context.assert_nothing_raised(*expected_exceptions, &@value)
|
27
|
+
end
|
28
|
+
|
29
|
+
def changes(*args)
|
30
|
+
@context.assert_changes(*args, &@value)
|
31
|
+
end
|
32
|
+
|
33
|
+
def does_not_change(*args)
|
34
|
+
@context.assert_not_changes(*args, &@value)
|
35
|
+
end
|
36
|
+
|
37
|
+
def is_a_kind_of(expected_class, *args)
|
38
|
+
@context.assert_kind_of(expected_class, @value, *args)
|
39
|
+
end
|
40
|
+
alias_method :is_kind_of, :is_a_kind_of
|
41
|
+
|
42
|
+
def is_not_a_kind_of(expected_class, *args)
|
43
|
+
@context.assert_not_kind_of(expected_class, @value, *args)
|
44
|
+
end
|
45
|
+
alias_method :is_not_kind_of, :is_not_a_kind_of
|
46
|
+
|
47
|
+
def is_an_instance_of(expected_class, *args)
|
48
|
+
@context.assert_instance_of(expected_class, @value, *args)
|
49
|
+
end
|
50
|
+
alias_method :is_instance_of, :is_an_instance_of
|
51
|
+
|
52
|
+
def is_not_an_instance_of(expected_class, *args)
|
53
|
+
@context.assert_not_instance_of(expected_class, @value, *args)
|
54
|
+
end
|
55
|
+
alias_method :is_not_instance_of, :is_not_an_instance_of
|
56
|
+
|
57
|
+
def responds_to(expected_method_name, *args)
|
58
|
+
@context.assert_responds_to(expected_method_name, @value, *args)
|
59
|
+
end
|
60
|
+
|
61
|
+
def does_not_respond_to(expected_method_name, *args)
|
62
|
+
@context.assert_not_responds_to(expected_method_name, @value, *args)
|
63
|
+
end
|
64
|
+
|
65
|
+
def is_the_same_as(expected_object, *args)
|
66
|
+
@context.assert_same(expected_object, @value, *args)
|
67
|
+
end
|
68
|
+
alias_method :is, :is_the_same_as
|
69
|
+
|
70
|
+
def is_not_the_same_as(expected_object, *args)
|
71
|
+
@context.assert_not_same(expected_object, @value, *args)
|
72
|
+
end
|
73
|
+
alias_method :is_not, :is_not_the_same_as
|
74
|
+
|
75
|
+
def equals(expected_value, *args)
|
76
|
+
@context.assert_equal(expected_value, @value, *args)
|
77
|
+
end
|
78
|
+
alias_method :is_equal_to, :equals
|
79
|
+
|
80
|
+
def does_not_equal(expected_value, *args)
|
81
|
+
@context.assert_not_equal(expected_value, @value, *args)
|
82
|
+
end
|
83
|
+
alias_method :is_not_equal_to, :does_not_equal
|
84
|
+
|
85
|
+
def matches(expected_regex, *args)
|
86
|
+
@context.assert_match(expected_regex, @value, *args)
|
87
|
+
end
|
88
|
+
|
89
|
+
def does_not_match(expected_regex, *args)
|
90
|
+
@context.assert_not_match(expected_regex, @value, *args)
|
91
|
+
end
|
92
|
+
|
93
|
+
def is_empty(*args)
|
94
|
+
@context.assert_empty(@value, *args)
|
95
|
+
end
|
96
|
+
|
97
|
+
def is_not_empty(*args)
|
98
|
+
@context.assert_not_empty(@value, *args)
|
99
|
+
end
|
100
|
+
|
101
|
+
def includes(object, *args)
|
102
|
+
@context.assert_includes(object, @value, *args)
|
103
|
+
end
|
104
|
+
|
105
|
+
def does_not_include(object, *args)
|
106
|
+
@context.assert_not_includes(object, @value, *args)
|
107
|
+
end
|
108
|
+
|
109
|
+
def is_nil(*args)
|
110
|
+
@context.assert_nil(@value, *args)
|
111
|
+
end
|
112
|
+
|
113
|
+
def is_not_nil(*args)
|
114
|
+
@context.assert_not_nil(@value, *args)
|
115
|
+
end
|
116
|
+
|
117
|
+
def is_true(*args)
|
118
|
+
@context.assert_true(@value, *args)
|
119
|
+
end
|
120
|
+
|
121
|
+
def is_not_true(*args)
|
122
|
+
@context.assert_not_true(@value, *args)
|
123
|
+
end
|
124
|
+
|
125
|
+
def is_false(*args)
|
126
|
+
@context.assert_false(@value, *args)
|
127
|
+
end
|
128
|
+
|
129
|
+
def is_not_false(*args)
|
130
|
+
@context.assert_not_false(@value, *args)
|
131
|
+
end
|
132
|
+
|
133
|
+
def is_a_file(*args)
|
134
|
+
@context.assert_file_exists(@value, *args)
|
135
|
+
end
|
136
|
+
|
137
|
+
def is_not_a_file(*args)
|
138
|
+
@context.assert_not_file_exists(@value, *args)
|
139
|
+
end
|
140
|
+
end
|
data/lib/assert/assertions.rb
CHANGED
@@ -2,6 +2,15 @@ require "assert/utils"
|
|
2
2
|
|
3
3
|
module Assert
|
4
4
|
module Assertions
|
5
|
+
IGNORED_ASSERTION_HELPERS =
|
6
|
+
[
|
7
|
+
:assert_throws, :assert_nothing_thrown,
|
8
|
+
:assert_operator, :refute_operator,
|
9
|
+
:assert_in_epsilon, :refute_in_epsilon,
|
10
|
+
:assert_in_delta, :refute_in_delta,
|
11
|
+
:assert_send
|
12
|
+
]
|
13
|
+
|
5
14
|
def assert_block(desc = nil)
|
6
15
|
assert(yield, desc){ "Expected block to return a true value." }
|
7
16
|
end
|
@@ -25,7 +34,7 @@ module Assert
|
|
25
34
|
alias_method :refute_empty, :assert_not_empty
|
26
35
|
|
27
36
|
def assert_equal(exp, act, desc = nil)
|
28
|
-
assert(
|
37
|
+
assert(act == exp, desc) do
|
29
38
|
c = __assert_config__
|
30
39
|
exp_show = Assert::U.show_for_diff(exp, c)
|
31
40
|
act_show = Assert::U.show_for_diff(act, c)
|
@@ -40,7 +49,7 @@ module Assert
|
|
40
49
|
end
|
41
50
|
|
42
51
|
def assert_not_equal(exp, act, desc = nil)
|
43
|
-
assert(
|
52
|
+
assert(act != exp, desc) do
|
44
53
|
c = __assert_config__
|
45
54
|
exp_show = Assert::U.show_for_diff(exp, c)
|
46
55
|
act_show = Assert::U.show_for_diff(act, c)
|
@@ -189,6 +198,75 @@ module Assert
|
|
189
198
|
alias_method :assert_not_raises, :assert_nothing_raised
|
190
199
|
alias_method :assert_not_raise, :assert_nothing_raised
|
191
200
|
|
201
|
+
def assert_changes(
|
202
|
+
ruby_string_to_eval,
|
203
|
+
desc: nil,
|
204
|
+
from: Assert::ActualValue.not_given,
|
205
|
+
to: Assert::ActualValue.not_given,
|
206
|
+
&block
|
207
|
+
)
|
208
|
+
desc_msg = desc ? "#{desc}\n" : ""
|
209
|
+
from_eval = instance_eval(ruby_string_to_eval)
|
210
|
+
if Assert::ActualValue.given?(from)
|
211
|
+
assert_equal(
|
212
|
+
from,
|
213
|
+
from_eval,
|
214
|
+
"#{desc_msg}Expected `#{ruby_string_to_eval}` to change from `#{from.inspect}`."
|
215
|
+
)
|
216
|
+
end
|
217
|
+
|
218
|
+
block.call
|
219
|
+
|
220
|
+
to_eval = instance_eval(ruby_string_to_eval)
|
221
|
+
if Assert::ActualValue.given?(to)
|
222
|
+
assert_equal(
|
223
|
+
to,
|
224
|
+
to_eval,
|
225
|
+
"#{desc_msg}Expected `#{ruby_string_to_eval}` to change to `#{to.inspect}`."
|
226
|
+
)
|
227
|
+
end
|
228
|
+
|
229
|
+
if (
|
230
|
+
Assert::ActualValue.not_given?(from) &&
|
231
|
+
Assert::ActualValue.not_given?(to)
|
232
|
+
)
|
233
|
+
assert_not_equal(
|
234
|
+
from_eval,
|
235
|
+
to_eval,
|
236
|
+
"#{desc_msg}Expected `#{ruby_string_to_eval}` to change; "\
|
237
|
+
"it was `#{from_eval.inspect}` and didn't change."
|
238
|
+
)
|
239
|
+
end
|
240
|
+
end
|
241
|
+
|
242
|
+
def assert_not_changes(
|
243
|
+
ruby_string_to_eval,
|
244
|
+
desc: nil,
|
245
|
+
from: Assert::ActualValue.not_given,
|
246
|
+
&block
|
247
|
+
)
|
248
|
+
desc_msg = desc ? "#{desc}\n" : ""
|
249
|
+
from_eval = instance_eval(ruby_string_to_eval)
|
250
|
+
if Assert::ActualValue.given?(from)
|
251
|
+
assert_equal(
|
252
|
+
from,
|
253
|
+
from_eval,
|
254
|
+
"#{desc_msg}Expected `#{ruby_string_to_eval}` to not change from `#{from.inspect}`."
|
255
|
+
)
|
256
|
+
end
|
257
|
+
|
258
|
+
block.call
|
259
|
+
|
260
|
+
to_eval = instance_eval(ruby_string_to_eval)
|
261
|
+
assert_equal(
|
262
|
+
from_eval,
|
263
|
+
to_eval,
|
264
|
+
"#{desc_msg}Expected `#{ruby_string_to_eval}` to not change; "\
|
265
|
+
"it was `#{from_eval.inspect}` and changed to `#{to_eval.inspect}`."
|
266
|
+
)
|
267
|
+
end
|
268
|
+
alias_method :refute_changes, :assert_not_changes
|
269
|
+
|
192
270
|
def assert_respond_to(method, object, desc = nil)
|
193
271
|
assert(object.respond_to?(method), desc) do
|
194
272
|
"Expected #{Assert::U.show(object, __assert_config__)} (#{object.class})"\
|
@@ -244,24 +322,6 @@ module Assert
|
|
244
322
|
end
|
245
323
|
alias_method :refute_same, :assert_not_same
|
246
324
|
|
247
|
-
# ignored assertion helpers
|
248
|
-
|
249
|
-
IGNORED_ASSERTION_HELPERS = [
|
250
|
-
:assert_throws, :assert_nothing_thrown,
|
251
|
-
:assert_operator, :refute_operator,
|
252
|
-
:assert_in_epsilon, :refute_in_epsilon,
|
253
|
-
:assert_in_delta, :refute_in_delta,
|
254
|
-
:assert_send
|
255
|
-
]
|
256
|
-
def method_missing(method, *args, &block)
|
257
|
-
if IGNORED_ASSERTION_HELPERS.include?(method.to_sym)
|
258
|
-
ignore "The assertion `#{method}` is not supported."\
|
259
|
-
" Please use another assertion or the basic `assert`."
|
260
|
-
else
|
261
|
-
super
|
262
|
-
end
|
263
|
-
end
|
264
|
-
|
265
325
|
private
|
266
326
|
|
267
327
|
def __assert_config__
|