assert 2.4.0 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +8 -8
- data/lib/assert.rb +9 -62
- data/lib/assert/assert_runner.rb +15 -30
- data/lib/assert/assertions.rb +105 -41
- data/lib/assert/cli.rb +1 -1
- data/lib/assert/config.rb +56 -0
- data/lib/assert/context.rb +44 -150
- data/lib/assert/context/setup_dsl.rb +70 -0
- data/lib/assert/context/subject_dsl.rb +39 -0
- data/lib/assert/context/suite_dsl.rb +20 -0
- data/lib/assert/context/test_dsl.rb +51 -0
- data/lib/assert/runner.rb +8 -2
- data/lib/assert/suite.rb +33 -12
- data/lib/assert/test.rb +11 -8
- data/lib/assert/utils.rb +23 -11
- data/lib/assert/version.rb +1 -1
- data/lib/assert/view.rb +9 -7
- data/lib/assert/view/base.rb +26 -4
- data/lib/assert/view/default_view.rb +1 -1
- data/lib/assert/view/helpers/ansi_styles.rb +1 -1
- data/lib/assert/view/helpers/common.rb +16 -6
- data/test/helper.rb +1 -94
- data/test/support/factory.rb +70 -0
- data/test/system/running_tests.rb +55 -28
- data/test/unit/assert_tests.rb +6 -33
- data/test/unit/assertions/assert_block_tests.rb +3 -3
- data/test/unit/assertions/assert_empty_tests.rb +6 -4
- data/test/unit/assertions/assert_equal_tests.rb +19 -22
- data/test/unit/assertions/assert_file_exists_tests.rb +6 -4
- data/test/unit/assertions/assert_includes_tests.rb +8 -4
- data/test/unit/assertions/assert_instance_of_tests.rb +8 -6
- data/test/unit/assertions/assert_kind_of_tests.rb +8 -5
- data/test/unit/assertions/assert_match_tests.rb +8 -4
- data/test/unit/assertions/assert_nil_tests.rb +6 -4
- data/test/unit/assertions/assert_raises_tests.rb +2 -2
- data/test/unit/assertions/assert_respond_to_tests.rb +7 -5
- data/test/unit/assertions/assert_same_tests.rb +75 -6
- data/test/unit/assertions/assert_true_false_tests.rb +116 -0
- data/test/unit/assertions_tests.rb +7 -5
- data/test/unit/config_tests.rb +58 -0
- data/test/unit/context/{setup_teardown_singleton_tests.rb → setup_dsl_tests.rb} +17 -19
- data/test/unit/context/subject_dsl_tests.rb +78 -0
- data/test/unit/context/suite_dsl_tests.rb +47 -0
- data/test/unit/context/{test_should_singleton_tests.rb → test_dsl_tests.rb} +33 -34
- data/test/unit/context_tests.rb +19 -15
- data/test/unit/runner_tests.rb +9 -3
- data/test/unit/suite_tests.rb +20 -23
- data/test/unit/test_tests.rb +22 -14
- data/test/unit/utils_tests.rb +15 -21
- data/test/unit/view_tests.rb +12 -5
- metadata +23 -10
- data/test/unit/context/basic_singleton_tests.rb +0 -86
data/README.md
CHANGED
@@ -11,22 +11,22 @@ require 'assert'
|
|
11
11
|
|
12
12
|
class MyTests < Assert::Context
|
13
13
|
|
14
|
-
|
14
|
+
test "something" do
|
15
15
|
assert_equal 1, 1
|
16
16
|
end
|
17
17
|
|
18
18
|
end
|
19
19
|
```
|
20
20
|
|
21
|
-
```
|
21
|
+
```
|
22
22
|
$ assert test/my_tests.rb
|
23
23
|
Loaded suite (1 test)
|
24
|
-
Running tests in random order, seeded with "
|
24
|
+
Running tests in random order, seeded with "56382"
|
25
25
|
.
|
26
26
|
|
27
27
|
1 result: pass
|
28
28
|
|
29
|
-
(0.
|
29
|
+
(0.000128 seconds, 7812.500000 tests/s, 7812.500000 results/s)
|
30
30
|
```
|
31
31
|
|
32
32
|
## What Assert is
|
@@ -226,11 +226,11 @@ git ls-files --others --exclude-standard # added files
|
|
226
226
|
|
227
227
|
The git cmds have ` -- #{test_paths}` appended to them to scope their results to just the test paths specified by the CLI and are run together using ` && `.
|
228
228
|
|
229
|
-
This, of course, assumes you are working in a git repository. If you are not or you want to use custom logic to determine the changed files, configure a custom proc. The proc should take
|
229
|
+
This, of course, assumes you are working in a git repository. If you are not or you want to use custom logic to determine the changed files, configure a custom proc. The proc should take two parameters: the config and an array of test paths specified by the CLI.
|
230
230
|
|
231
231
|
```ruby
|
232
232
|
Assert.configure do |config|
|
233
|
-
config.
|
233
|
+
config.changed_proc Proc.new do |config, test_paths|
|
234
234
|
`git diff --name-only master -- #{test_paths.join(' ')}`.split("\n") # or whatever
|
235
235
|
end
|
236
236
|
end
|
@@ -242,10 +242,10 @@ If you just want to disable this feature completely:
|
|
242
242
|
Assert.configure do |config|
|
243
243
|
|
244
244
|
# run nothing if the `-c` flag is given
|
245
|
-
config.
|
245
|
+
config.changed_proc Proc.new{ |test_paths| [] }
|
246
246
|
|
247
247
|
# run all test paths if the `-c` flag is given
|
248
|
-
config.
|
248
|
+
config.changed_proc Proc.new{ |test_paths| test_paths }
|
249
249
|
|
250
250
|
end
|
251
251
|
```
|
data/lib/assert.rb
CHANGED
@@ -1,72 +1,19 @@
|
|
1
|
-
require 'singleton'
|
2
1
|
require 'assert/version'
|
3
2
|
|
3
|
+
require 'assert/config'
|
4
|
+
require 'assert/context'
|
5
|
+
require 'assert/runner'
|
6
|
+
require 'assert/suite'
|
4
7
|
require 'assert/utils'
|
5
8
|
require 'assert/view'
|
6
|
-
require 'assert/suite'
|
7
|
-
require 'assert/runner'
|
8
|
-
require 'assert/context'
|
9
9
|
|
10
10
|
module Assert
|
11
11
|
|
12
|
-
def self.
|
13
|
-
def self.
|
14
|
-
def self.runner; Config.runner; end
|
15
|
-
|
16
|
-
def self.config; Config; end
|
17
|
-
def self.configure; yield Config if block_given?; end
|
18
|
-
|
19
|
-
class Config
|
20
|
-
include Singleton
|
21
|
-
# map any class methods to the singleton
|
22
|
-
def self.method_missing(m, *a, &b); self.instance.send(m, *a, &b); end
|
23
|
-
def self.respond_to?(m); super || self.instance.respond_to?(m); end
|
24
|
-
|
25
|
-
def self.settings(*items)
|
26
|
-
items.each do |item|
|
27
|
-
define_method(item) do |*args|
|
28
|
-
if !(value = args.size > 1 ? args : args.first).nil?
|
29
|
-
instance_variable_set("@#{item}", value)
|
30
|
-
end
|
31
|
-
instance_variable_get("@#{item}")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
settings :view, :suite, :runner, :test_dir, :test_helper, :changed_files
|
37
|
-
settings :runner_seed, :pp_proc, :use_diff_proc, :run_diff_proc
|
38
|
-
settings :capture_output, :halt_on_fail, :changed_only, :pp_objects, :debug
|
39
|
-
|
40
|
-
def initialize
|
41
|
-
@view = Assert::View::DefaultView.new($stdout)
|
42
|
-
@suite = Assert::Suite.new
|
43
|
-
@runner = Assert::Runner.new
|
44
|
-
@test_dir = "test"
|
45
|
-
@test_helper = "helper.rb"
|
46
|
-
@changed_files = Assert::AssertRunner::DEFAULT_CHANGED_FILES_PROC
|
47
|
-
|
48
|
-
# default option values
|
49
|
-
@runner_seed = begin; srand; srand % 0xFFFF; end.to_i
|
50
|
-
@pp_proc = Assert::U.stdlib_pp_proc
|
51
|
-
@use_diff_proc = Assert::U.default_use_diff_proc
|
52
|
-
@run_diff_proc = Assert::U.syscmd_diff_proc
|
53
|
-
|
54
|
-
# mode flags
|
55
|
-
@capture_output = false
|
56
|
-
@halt_on_fail = true
|
57
|
-
@changed_only = false
|
58
|
-
@pp_objects = false
|
59
|
-
@debug = false
|
60
|
-
end
|
61
|
-
|
62
|
-
def apply(settings)
|
63
|
-
settings.keys.each do |name|
|
64
|
-
if !settings[name].nil? && self.respond_to?(name.to_s)
|
65
|
-
self.send(name.to_s, settings[name])
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
12
|
+
def self.config; @config ||= Config.new; end
|
13
|
+
def self.configure; yield self.config if block_given?; end
|
69
14
|
|
70
|
-
end
|
15
|
+
def self.view; self.config.view; end
|
16
|
+
def self.suite; self.config.suite; end
|
17
|
+
def self.runner; self.config.runner; end
|
71
18
|
|
72
19
|
end
|
data/lib/assert/assert_runner.rb
CHANGED
@@ -3,26 +3,13 @@ require 'assert/cli'
|
|
3
3
|
module Assert
|
4
4
|
|
5
5
|
class AssertRunner
|
6
|
-
TEST_FILE_SUFFIXES = ['_tests.rb', '_test.rb']
|
7
6
|
USER_SETTINGS_FILE = ".assert/init.rb"
|
8
7
|
LOCAL_SETTINGS_FILE = ".assert.rb"
|
9
8
|
|
10
|
-
|
11
|
-
# use git to determine which files have changes
|
12
|
-
files = []
|
13
|
-
cmd = [
|
14
|
-
"git diff --no-ext-diff --name-only", # changed files
|
15
|
-
"git ls-files --others --exclude-standard" # added files
|
16
|
-
].map{ |c| "#{c} -- #{test_paths.join(' ')}" }.join(' && ')
|
9
|
+
attr_reader :config
|
17
10
|
|
18
|
-
|
19
|
-
|
20
|
-
end
|
21
|
-
puts Assert::CLI.debug_msg(" `#{cmd}`") if Assert.config.debug
|
22
|
-
files
|
23
|
-
end
|
24
|
-
|
25
|
-
def initialize(test_paths, test_options)
|
11
|
+
def initialize(config, test_paths, test_options)
|
12
|
+
@config = config
|
26
13
|
Assert::CLI.bench('Apply settings') do
|
27
14
|
apply_user_settings
|
28
15
|
apply_local_settings
|
@@ -30,30 +17,30 @@ module Assert
|
|
30
17
|
apply_env_settings
|
31
18
|
end
|
32
19
|
|
33
|
-
files = test_files(test_paths.empty? ? [*
|
34
|
-
init(files, path_of(
|
20
|
+
files = test_files(test_paths.empty? ? [*self.config.test_dir] : test_paths)
|
21
|
+
init(files, path_of(self.config.test_dir, files.first))
|
35
22
|
end
|
36
23
|
|
37
24
|
def init(test_files, test_dir)
|
38
25
|
# load any test helper file
|
39
|
-
if test_dir && (h = File.join(test_dir,
|
26
|
+
if test_dir && (h = File.join(test_dir, self.config.test_helper)) && File.exists?(h)
|
40
27
|
Assert::CLI.bench('Require test helper'){ require h }
|
41
28
|
end
|
42
29
|
|
43
30
|
# load the test files
|
44
|
-
|
31
|
+
self.config.view.fire(:before_load, test_files)
|
45
32
|
Assert::CLI.bench("Require #{test_files.count} test files") do
|
46
33
|
test_files.each{ |p| require p }
|
47
34
|
end
|
48
|
-
if
|
35
|
+
if self.config.debug
|
49
36
|
puts Assert::CLI.debug_msg("Test files:")
|
50
37
|
test_files.each{ |f| puts Assert::CLI.debug_msg(" #{f}") }
|
51
38
|
end
|
52
|
-
|
39
|
+
self.config.view.fire(:after_load)
|
53
40
|
end
|
54
41
|
|
55
42
|
def run
|
56
|
-
|
43
|
+
self.config.runner.run(self.config.suite, self.config.view)
|
57
44
|
end
|
58
45
|
|
59
46
|
protected
|
@@ -67,19 +54,17 @@ module Assert
|
|
67
54
|
end
|
68
55
|
|
69
56
|
def apply_option_settings(options)
|
70
|
-
|
57
|
+
self.config.apply(options)
|
71
58
|
end
|
72
59
|
|
73
60
|
def apply_env_settings
|
74
|
-
|
75
|
-
c.runner_seed ENV['ASSERT_RUNNER_SEED'].to_i if ENV['ASSERT_RUNNER_SEED']
|
76
|
-
end
|
61
|
+
self.config.runner_seed ENV['ASSERT_RUNNER_SEED'].to_i if ENV['ASSERT_RUNNER_SEED']
|
77
62
|
end
|
78
63
|
|
79
64
|
private
|
80
65
|
|
81
66
|
def test_files(test_paths)
|
82
|
-
file_paths = if
|
67
|
+
file_paths = if self.config.changed_only
|
83
68
|
changed_test_files(test_paths)
|
84
69
|
else
|
85
70
|
globbed_test_files(test_paths)
|
@@ -89,7 +74,7 @@ module Assert
|
|
89
74
|
end
|
90
75
|
|
91
76
|
def changed_test_files(test_paths)
|
92
|
-
globbed_test_files(
|
77
|
+
globbed_test_files(self.config.changed_proc.call(self.config, test_paths))
|
93
78
|
end
|
94
79
|
|
95
80
|
def globbed_test_files(test_paths)
|
@@ -100,7 +85,7 @@ module Assert
|
|
100
85
|
end
|
101
86
|
|
102
87
|
def is_test_file?(path)
|
103
|
-
|
88
|
+
self.config.test_file_suffixes.inject(false) do |result, suffix|
|
104
89
|
result || path =~ /#{suffix}$/
|
105
90
|
end
|
106
91
|
end
|
data/lib/assert/assertions.rb
CHANGED
@@ -9,47 +9,49 @@ module Assert
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def assert_not_block(desc = nil)
|
12
|
-
assert(!yield, desc){ "Expected block to return a
|
12
|
+
assert(!yield, desc){ "Expected block to not return a true value." }
|
13
13
|
end
|
14
14
|
alias_method :refute_block, :assert_not_block
|
15
15
|
|
16
16
|
def assert_empty(collection, desc = nil)
|
17
17
|
assert(collection.empty?, desc) do
|
18
|
-
"Expected #{Assert::U.show(collection)} to be empty."
|
18
|
+
"Expected #{Assert::U.show(collection, __assert_config__)} to be empty."
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
22
|
def assert_not_empty(collection, desc = nil)
|
23
23
|
assert(!collection.empty?, desc) do
|
24
|
-
"Expected #{Assert::U.show(collection)} to not be empty."
|
24
|
+
"Expected #{Assert::U.show(collection, __assert_config__)} to not be empty."
|
25
25
|
end
|
26
26
|
end
|
27
27
|
alias_method :refute_empty, :assert_not_empty
|
28
28
|
|
29
29
|
def assert_equal(exp, act, desc = nil)
|
30
30
|
assert(act == exp, desc) do
|
31
|
-
|
32
|
-
|
31
|
+
c = __assert_config__
|
32
|
+
exp_show = Assert::U.show_for_diff(exp, c)
|
33
|
+
act_show = Assert::U.show_for_diff(act, c)
|
33
34
|
|
34
|
-
if
|
35
|
+
if c.use_diff_proc.call(exp_show, act_show)
|
35
36
|
"Expected does not equal actual, diff:\n"\
|
36
|
-
"#{
|
37
|
+
"#{c.run_diff_proc.call(exp_show, act_show)}"
|
37
38
|
else
|
38
|
-
"Expected #{Assert::U.show(
|
39
|
+
"Expected #{Assert::U.show(act, c)} to be equal to #{Assert::U.show(exp, c)}."
|
39
40
|
end
|
40
41
|
end
|
41
42
|
end
|
42
43
|
|
43
44
|
def assert_not_equal(exp, act, desc = nil)
|
44
45
|
assert(act != exp, desc) do
|
45
|
-
|
46
|
-
|
46
|
+
c = __assert_config__
|
47
|
+
exp_show = Assert::U.show_for_diff(exp, c)
|
48
|
+
act_show = Assert::U.show_for_diff(act, c)
|
47
49
|
|
48
|
-
if
|
50
|
+
if c.use_diff_proc.call(exp_show, act_show)
|
49
51
|
"Expected equals actual, diff:\n"\
|
50
|
-
"#{
|
52
|
+
"#{c.run_diff_proc.call(exp_show, act_show)}"
|
51
53
|
else
|
52
|
-
"#{Assert::U.show(act)} not
|
54
|
+
"Expected #{Assert::U.show(act, c)} to not be equal to #{Assert::U.show(exp, c)}."
|
53
55
|
end
|
54
56
|
end
|
55
57
|
end
|
@@ -57,27 +59,29 @@ module Assert
|
|
57
59
|
|
58
60
|
def assert_file_exists(file_path, desc = nil)
|
59
61
|
assert(File.exists?(File.expand_path(file_path)), desc) do
|
60
|
-
"Expected #{Assert::U.show(file_path)} to exist."
|
62
|
+
"Expected #{Assert::U.show(file_path, __assert_config__)} to exist."
|
61
63
|
end
|
62
64
|
end
|
63
65
|
|
64
66
|
def assert_not_file_exists(file_path, desc = nil)
|
65
67
|
assert(!File.exists?(File.expand_path(file_path)), desc) do
|
66
|
-
"Expected #{Assert::U.show(file_path)} to not exist."
|
68
|
+
"Expected #{Assert::U.show(file_path, __assert_config__)} to not exist."
|
67
69
|
end
|
68
70
|
end
|
69
71
|
alias_method :refute_file_exists, :assert_not_file_exists
|
70
72
|
|
71
73
|
def assert_includes(object, collection, desc = nil)
|
72
74
|
assert(collection.include?(object), desc) do
|
73
|
-
"Expected #{Assert::U.show(collection
|
75
|
+
"Expected #{Assert::U.show(collection, __assert_config__)}"\
|
76
|
+
" to include #{Assert::U.show(object, __assert_config__)}."
|
74
77
|
end
|
75
78
|
end
|
76
79
|
alias_method :assert_included, :assert_includes
|
77
80
|
|
78
81
|
def assert_not_includes(object, collection, desc = nil)
|
79
82
|
assert(!collection.include?(object), desc) do
|
80
|
-
"Expected #{Assert::U.show(collection
|
83
|
+
"Expected #{Assert::U.show(collection, __assert_config__)}"\
|
84
|
+
" to not include #{Assert::U.show(object, __assert_config__)}."
|
81
85
|
end
|
82
86
|
end
|
83
87
|
alias_method :assert_not_included, :assert_not_includes
|
@@ -86,55 +90,91 @@ module Assert
|
|
86
90
|
|
87
91
|
def assert_instance_of(klass, instance, desc = nil)
|
88
92
|
assert(instance.instance_of?(klass), desc) do
|
89
|
-
"Expected #{Assert::U.show(instance)} (#{instance.class})
|
93
|
+
"Expected #{Assert::U.show(instance, __assert_config__)} (#{instance.class})"\
|
94
|
+
" to be an instance of #{klass}."
|
90
95
|
end
|
91
96
|
end
|
92
97
|
|
93
98
|
def assert_not_instance_of(klass, instance, desc = nil)
|
94
99
|
assert(!instance.instance_of?(klass), desc) do
|
95
|
-
"#{Assert::U.show(instance)} (#{instance.class})
|
100
|
+
"Expected #{Assert::U.show(instance, __assert_config__)} (#{instance.class})"\
|
101
|
+
" to not be an instance of #{klass}."
|
96
102
|
end
|
97
103
|
end
|
98
104
|
alias_method :refute_instance_of, :assert_not_instance_of
|
99
105
|
|
100
|
-
def assert_kind_of(klass, instance, desc=nil)
|
106
|
+
def assert_kind_of(klass, instance, desc = nil)
|
101
107
|
assert(instance.kind_of?(klass), desc) do
|
102
|
-
"Expected #{Assert::U.show(instance)} (#{instance.class})
|
108
|
+
"Expected #{Assert::U.show(instance, __assert_config__)} (#{instance.class})"\
|
109
|
+
" to be a kind of #{klass}."
|
103
110
|
end
|
104
111
|
end
|
105
112
|
|
106
|
-
def assert_not_kind_of(klass, instance, desc=nil)
|
113
|
+
def assert_not_kind_of(klass, instance, desc = nil)
|
107
114
|
assert(!instance.kind_of?(klass), desc) do
|
108
|
-
"#{Assert::U.show(instance)}
|
115
|
+
"Expected #{Assert::U.show(instance, __assert_config__)} (#{instance.class})"\
|
116
|
+
" to not be a kind of #{klass}."
|
109
117
|
end
|
110
118
|
end
|
111
119
|
alias_method :refute_kind_of, :assert_not_kind_of
|
112
120
|
|
113
|
-
def assert_match(exp, act, desc=nil)
|
121
|
+
def assert_match(exp, act, desc = nil)
|
114
122
|
exp_regex = String === exp && String === act ? /#{Regexp.escape(exp)}/ : exp
|
115
123
|
assert(act =~ exp_regex, desc) do
|
116
|
-
"Expected #{Assert::U.show(act
|
124
|
+
"Expected #{Assert::U.show(act, __assert_config__)}"\
|
125
|
+
" to match #{Assert::U.show(exp, __assert_config__)}."
|
117
126
|
end
|
118
127
|
end
|
119
128
|
|
120
|
-
def assert_not_match(exp, act, desc=nil)
|
129
|
+
def assert_not_match(exp, act, desc = nil)
|
121
130
|
exp = String === exp && String === act ? /#{Regexp.escape(exp)}/ : exp
|
122
131
|
assert(act !~ exp, desc) do
|
123
|
-
"#{Assert::U.show(act
|
132
|
+
"Expected #{Assert::U.show(act, __assert_config__)}"\
|
133
|
+
" to not match #{Assert::U.show(exp, __assert_config__)}."
|
124
134
|
end
|
125
135
|
end
|
126
136
|
alias_method :refute_match, :assert_not_match
|
127
137
|
alias_method :assert_no_match, :assert_not_match
|
128
138
|
|
129
|
-
def assert_nil(object, desc=nil)
|
130
|
-
assert(object.nil?, desc)
|
139
|
+
def assert_nil(object, desc = nil)
|
140
|
+
assert(object.nil?, desc) do
|
141
|
+
"Expected #{Assert::U.show(object, __assert_config__)} to be nil."
|
142
|
+
end
|
131
143
|
end
|
132
144
|
|
133
|
-
def assert_not_nil(object, desc=nil)
|
134
|
-
assert(!object.nil?, desc)
|
145
|
+
def assert_not_nil(object, desc = nil)
|
146
|
+
assert(!object.nil?, desc) do
|
147
|
+
"Expected #{Assert::U.show(object, __assert_config__)} to not be nil."
|
148
|
+
end
|
135
149
|
end
|
136
150
|
alias_method :refute_nil, :assert_not_nil
|
137
151
|
|
152
|
+
def assert_true(object, desc = nil)
|
153
|
+
assert(object == true, desc) do
|
154
|
+
"Expected #{Assert::U.show(object, __assert_config__)} to be true."
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
def assert_not_true(object, desc = nil)
|
159
|
+
assert(object != true, desc) do
|
160
|
+
"Expected #{Assert::U.show(object, __assert_config__)} to not be true."
|
161
|
+
end
|
162
|
+
end
|
163
|
+
alias_method :refute_true, :assert_not_true
|
164
|
+
|
165
|
+
def assert_false(object, desc = nil)
|
166
|
+
assert(object == false, desc) do
|
167
|
+
"Expected #{Assert::U.show(object, __assert_config__)} to be false."
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
def assert_not_false(object, desc = nil)
|
172
|
+
assert(object != false, desc) do
|
173
|
+
"Expected #{Assert::U.show(object, __assert_config__)} to not be false."
|
174
|
+
end
|
175
|
+
end
|
176
|
+
alias_method :refute_false, :assert_not_false
|
177
|
+
|
138
178
|
def assert_raises(*exceptions, &block)
|
139
179
|
desc = exceptions.last.kind_of?(String) ? exceptions.pop : nil
|
140
180
|
err = RaisedException.new(exceptions, &block)
|
@@ -150,33 +190,57 @@ module Assert
|
|
150
190
|
alias_method :assert_not_raises, :assert_nothing_raised
|
151
191
|
alias_method :assert_not_raise, :assert_nothing_raised
|
152
192
|
|
153
|
-
def assert_respond_to(method, object, desc=nil)
|
193
|
+
def assert_respond_to(method, object, desc = nil)
|
154
194
|
assert(object.respond_to?(method), desc) do
|
155
|
-
"Expected #{Assert::U.show(object)} (#{object.class})
|
195
|
+
"Expected #{Assert::U.show(object, __assert_config__)} (#{object.class})"\
|
196
|
+
" to respond to `#{method}`."
|
156
197
|
end
|
157
198
|
end
|
158
199
|
alias_method :assert_responds_to, :assert_respond_to
|
159
200
|
|
160
|
-
def assert_not_respond_to(method, object, desc=nil)
|
201
|
+
def assert_not_respond_to(method, object, desc = nil)
|
161
202
|
assert(!object.respond_to?(method), desc) do
|
162
|
-
"#{Assert::U.show(object)} (#{object.class})
|
203
|
+
"Expected #{Assert::U.show(object, __assert_config__)} (#{object.class})"\
|
204
|
+
" to not respond to `#{method}`."
|
163
205
|
end
|
164
206
|
end
|
165
207
|
alias_method :assert_not_responds_to, :assert_not_respond_to
|
166
208
|
alias_method :refute_respond_to, :assert_not_respond_to
|
167
209
|
alias_method :refute_responds_to, :assert_not_respond_to
|
168
210
|
|
169
|
-
def assert_same(exp, act, desc=nil)
|
211
|
+
def assert_same(exp, act, desc = nil)
|
170
212
|
assert(act.equal?(exp), desc) do
|
171
|
-
|
172
|
-
|
213
|
+
c = __assert_config__
|
214
|
+
exp_show = Assert::U.show_for_diff(exp, c)
|
215
|
+
act_show = Assert::U.show_for_diff(act, c)
|
216
|
+
exp_id = "#<#{exp.class}:#{'0x0%x' % (exp.object_id << 1)}>"
|
217
|
+
act_id = "#<#{act.class}:#{'0x0%x' % (act.object_id << 1)}>"
|
218
|
+
|
219
|
+
if c.use_diff_proc.call(exp_show, act_show)
|
220
|
+
"Expected #{act_id} to be the same as #{exp_id}, diff:\n"\
|
221
|
+
"#{c.run_diff_proc.call(exp_show, act_show)}"
|
222
|
+
else
|
223
|
+
"Expected #{Assert::U.show(act, c)} (#{act_id}) to be the same as"\
|
224
|
+
" #{Assert::U.show(exp, c)} (#{exp_id})."
|
225
|
+
end
|
173
226
|
end
|
174
227
|
end
|
175
228
|
|
176
|
-
def assert_not_same(exp, act, desc=nil)
|
229
|
+
def assert_not_same(exp, act, desc = nil)
|
177
230
|
assert(!act.equal?(exp), desc) do
|
178
|
-
|
179
|
-
|
231
|
+
c = __assert_config__
|
232
|
+
exp_show = Assert::U.show_for_diff(exp, c)
|
233
|
+
act_show = Assert::U.show_for_diff(act, c)
|
234
|
+
exp_id = "#<#{exp.class}:#{'0x0%x' % (exp.object_id << 1)}>"
|
235
|
+
act_id = "#<#{act.class}:#{'0x0%x' % (act.object_id << 1)}>"
|
236
|
+
|
237
|
+
if c.use_diff_proc.call(exp_show, act_show)
|
238
|
+
"Expected #{act_id} to not be the same as #{exp_id}, diff:\n"\
|
239
|
+
"#{c.run_diff_proc.call(exp_show, act_show)}"
|
240
|
+
else
|
241
|
+
"Expected #{Assert::U.show(act, c)} (#{act_id}) to not be the same as"\
|
242
|
+
" #{Assert::U.show(exp, c)} (#{exp_id})."
|
243
|
+
end
|
180
244
|
end
|
181
245
|
end
|
182
246
|
alias_method :refute_same, :assert_not_same
|